@azure/storage-file-share 12.9.1-alpha.20220401.1 → 12.9.1-alpha.20220418.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ import { isNode } from "@azure/core-http";
5
5
  import { SpanStatusCode } from "@azure/core-tracing";
6
6
  import { Share, Directory, File } from "./generated/src/operations";
7
7
  import { newPipeline, Pipeline } from "./Pipeline";
8
- import { DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS, DEFAULT_HIGH_LEVEL_CONCURRENCY, FILE_MAX_SIZE_BYTES, FILE_RANGE_MAX_SIZE_BYTES, URLConstants, } from "./utils/constants";
8
+ import { DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS, DEFAULT_HIGH_LEVEL_CONCURRENCY, FILE_MAX_SIZE_BYTES, FILE_RANGE_MAX_SIZE_BYTES, URLConstants, FileAttributesPreserve, FileAttributesNone, } from "./utils/constants";
9
9
  import { appendToURLPath, setURLParameter, truncatedISO8061Date, extractConnectionStringParts, getShareNameAndPathFromUrl, appendToURLQuery, httpAuthorizationToString, setURLPath, setURLQueries, } from "./utils/utils.common";
10
10
  import { Credential } from "./credentials/Credential";
11
11
  import { StorageSharedKeyCredential } from "./credentials/StorageSharedKeyCredential";
@@ -16,7 +16,7 @@ import "@azure/core-paging";
16
16
  import { FileSystemAttributes } from "./FileSystemAttributes";
17
17
  import { FileDownloadResponse } from "./FileDownloadResponse";
18
18
  import { rangeToString } from "./Range";
19
- import { fileAttributesToString, fileCreationTimeToString, fileLastWriteTimeToString, validateAndSetDefaultsForFileAndDirectoryCreateCommonOptions, validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions, toShareProtocolsString, toShareProtocols, } from "./models";
19
+ import { fileAttributesToString, fileCreationTimeToString, fileLastWriteTimeToString, validateAndSetDefaultsForFileAndDirectoryCreateCommonOptions, validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions, toShareProtocolsString, toShareProtocols, fileChangeTimeToString, } from "./models";
20
20
  import { Batch } from "./utils/Batch";
21
21
  import { BufferScheduler } from "./utils/BufferScheduler";
22
22
  import { fsStat, fsCreateReadStream, readStreamToLocalFile, streamToBuffer, } from "./utils/utils.node";
@@ -774,7 +774,9 @@ export class ShareDirectoryClient extends StorageClient {
774
774
  attributes.directory = true;
775
775
  options.fileAttributes = attributes;
776
776
  }
777
- return await this.context.create(fileAttributesToString(options.fileAttributes), fileCreationTimeToString(options.creationTime), fileLastWriteTimeToString(options.lastWriteTime), Object.assign({ abortSignal: options.abortSignal, metadata: options.metadata, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey }, convertTracingToRequestOptionsBase(updatedOptions)));
777
+ return await this.context.create(options.fileAttributes
778
+ ? fileAttributesToString(options.fileAttributes)
779
+ : FileAttributesNone, Object.assign({ abortSignal: options.abortSignal, metadata: options.metadata, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, fileChangeOn: fileChangeTimeToString(options.changeTime), fileCreatedOn: fileCreationTimeToString(options.creationTime), fileLastWriteOn: fileLastWriteTimeToString(options.lastWriteTime) }, convertTracingToRequestOptionsBase(updatedOptions)));
778
780
  }
779
781
  catch (e) {
780
782
  span.setStatus({
@@ -830,7 +832,9 @@ export class ShareDirectoryClient extends StorageClient {
830
832
  const { span, updatedOptions } = createSpan("ShareDirectoryClient-setProperties", properties);
831
833
  try {
832
834
  properties = validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(properties);
833
- return await this.context.setProperties(fileAttributesToString(properties.fileAttributes), fileCreationTimeToString(properties.creationTime), fileLastWriteTimeToString(properties.lastWriteTime), Object.assign({ abortSignal: properties.abortSignal, filePermission: properties.filePermission, filePermissionKey: properties.filePermissionKey }, convertTracingToRequestOptionsBase(updatedOptions)));
835
+ return await this.context.setProperties(properties.fileAttributes
836
+ ? fileAttributesToString(properties.fileAttributes)
837
+ : FileAttributesPreserve, Object.assign({ abortSignal: properties.abortSignal, filePermission: properties.filePermission, filePermissionKey: properties.filePermissionKey, fileChangeOn: fileChangeTimeToString(updatedOptions.changeTime), fileCreatedOn: fileCreationTimeToString(properties.creationTime), fileLastWriteOn: fileLastWriteTimeToString(properties.lastWriteTime) }, convertTracingToRequestOptionsBase(updatedOptions)));
834
838
  }
835
839
  catch (e) {
836
840
  span.setStatus({
@@ -1794,14 +1798,10 @@ export class ShareFileClient extends StorageClient {
1794
1798
  throw new RangeError(`File size must >= 0 and < ${FILE_MAX_SIZE_BYTES}.`);
1795
1799
  }
1796
1800
  options = validateAndSetDefaultsForFileAndDirectoryCreateCommonOptions(options);
1797
- if (!options.fileAttributes) {
1798
- // Note: It would be Archive in service side if None is set.
1799
- const attributes = new FileSystemAttributes();
1800
- attributes.none = true;
1801
- options.fileAttributes = attributes;
1802
- }
1803
1801
  options.fileHttpHeaders = options.fileHttpHeaders || {};
1804
- return await this.context.create(size, fileAttributesToString(options.fileAttributes), fileCreationTimeToString(options.creationTime), fileLastWriteTimeToString(options.lastWriteTime), Object.assign({ abortSignal: options.abortSignal, fileHttpHeaders: options.fileHttpHeaders, metadata: options.metadata, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, leaseAccessConditions: options.leaseAccessConditions }, convertTracingToRequestOptionsBase(updatedOptions)));
1802
+ return await this.context.create(size, options.fileAttributes
1803
+ ? fileAttributesToString(options.fileAttributes)
1804
+ : FileAttributesNone, Object.assign({ abortSignal: options.abortSignal, fileHttpHeaders: options.fileHttpHeaders, metadata: options.metadata, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, fileChangeOn: fileChangeTimeToString(options.changeTime), fileCreatedOn: fileCreationTimeToString(options.creationTime), fileLastWriteOn: fileLastWriteTimeToString(options.lastWriteTime), leaseAccessConditions: options.leaseAccessConditions }, convertTracingToRequestOptionsBase(updatedOptions)));
1805
1805
  }
1806
1806
  catch (e) {
1807
1807
  span.setStatus({
@@ -2010,7 +2010,9 @@ export class ShareFileClient extends StorageClient {
2010
2010
  try {
2011
2011
  properties = validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(properties);
2012
2012
  properties.fileHttpHeaders = properties.fileHttpHeaders || {};
2013
- return await this.context.setHttpHeaders(fileAttributesToString(properties.fileAttributes), fileCreationTimeToString(properties.creationTime), fileLastWriteTimeToString(properties.lastWriteTime), Object.assign({ abortSignal: properties.abortSignal, fileHttpHeaders: properties.fileHttpHeaders, filePermission: properties.filePermission, filePermissionKey: properties.filePermissionKey, leaseAccessConditions: properties.leaseAccessConditions }, convertTracingToRequestOptionsBase(updatedOptions)));
2013
+ return await this.context.setHttpHeaders(properties.fileAttributes
2014
+ ? fileAttributesToString(properties.fileAttributes)
2015
+ : FileAttributesPreserve, Object.assign({ abortSignal: properties.abortSignal, fileHttpHeaders: properties.fileHttpHeaders, filePermission: properties.filePermission, filePermissionKey: properties.filePermissionKey, leaseAccessConditions: properties.leaseAccessConditions, fileChangeOn: fileChangeTimeToString(properties.changeTime), fileCreatedOn: fileCreationTimeToString(properties.creationTime), fileLastWriteOn: fileLastWriteTimeToString(properties.lastWriteTime) }, convertTracingToRequestOptionsBase(updatedOptions)));
2014
2016
  }
2015
2017
  catch (e) {
2016
2018
  span.setStatus({
@@ -2115,7 +2117,9 @@ export class ShareFileClient extends StorageClient {
2115
2117
  try {
2116
2118
  // FileAttributes, filePermission, createTime, lastWriteTime will all be preserved
2117
2119
  options = validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(options);
2118
- return await this.context.setHttpHeaders(fileAttributesToString(options.fileAttributes), fileCreationTimeToString(options.creationTime), fileLastWriteTimeToString(options.lastWriteTime), Object.assign({ abortSignal: options.abortSignal, fileHttpHeaders, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, leaseAccessConditions: options.leaseAccessConditions }, convertTracingToRequestOptionsBase(updatedOptions)));
2120
+ return await this.context.setHttpHeaders(options.fileAttributes
2121
+ ? fileAttributesToString(options.fileAttributes)
2122
+ : FileAttributesPreserve, Object.assign({ abortSignal: options.abortSignal, fileHttpHeaders, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, leaseAccessConditions: options.leaseAccessConditions, fileCreatedOn: fileCreationTimeToString(options.creationTime), fileLastWriteOn: fileLastWriteTimeToString(options.lastWriteTime), fileChangeOn: fileChangeTimeToString(options.changeTime) }, convertTracingToRequestOptionsBase(updatedOptions)));
2119
2123
  }
2120
2124
  catch (e) {
2121
2125
  span.setStatus({
@@ -2147,7 +2151,7 @@ export class ShareFileClient extends StorageClient {
2147
2151
  }
2148
2152
  // FileAttributes, filePermission, createTime, lastWriteTime will all be preserved.
2149
2153
  options = validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(options);
2150
- return await this.context.setHttpHeaders(fileAttributesToString(options.fileAttributes), fileCreationTimeToString(options.creationTime), fileLastWriteTimeToString(options.lastWriteTime), Object.assign({ abortSignal: options.abortSignal, fileContentLength: length, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, leaseAccessConditions: options.leaseAccessConditions }, convertTracingToRequestOptionsBase(updatedOptions)));
2154
+ return await this.context.setHttpHeaders(fileAttributesToString(options.fileAttributes), Object.assign({ abortSignal: options.abortSignal, fileContentLength: length, filePermission: options.filePermission, filePermissionKey: options.filePermissionKey, leaseAccessConditions: options.leaseAccessConditions, fileChangeOn: fileChangeTimeToString(options.changeTime), fileCreatedOn: fileCreationTimeToString(options.creationTime), fileLastWriteOn: fileLastWriteTimeToString(options.lastWriteTime) }, convertTracingToRequestOptionsBase(updatedOptions)));
2151
2155
  }
2152
2156
  catch (e) {
2153
2157
  span.setStatus({
@@ -2228,7 +2232,7 @@ export class ShareFileClient extends StorageClient {
2228
2232
  }
2229
2233
  return await this.context.uploadRange(rangeToString({ count: contentLength, offset }), "update", contentLength, Object.assign(Object.assign({ abortSignal: options.abortSignal, contentMD5: options.contentMD5, requestOptions: {
2230
2234
  onUploadProgress: options.onProgress,
2231
- }, body: body }, convertTracingToRequestOptionsBase(updatedOptions)), { leaseAccessConditions: options.leaseAccessConditions }));
2235
+ }, body: body }, convertTracingToRequestOptionsBase(updatedOptions)), { leaseAccessConditions: options.leaseAccessConditions, fileLastWrittenMode: options.fileLastWrittenMode }));
2232
2236
  }
2233
2237
  catch (e) {
2234
2238
  span.setStatus({
@@ -2260,7 +2264,7 @@ export class ShareFileClient extends StorageClient {
2260
2264
  if (count <= 0 || count > FILE_RANGE_MAX_SIZE_BYTES) {
2261
2265
  throw new RangeError(`count must be > 0 and <= ${FILE_RANGE_MAX_SIZE_BYTES} bytes`);
2262
2266
  }
2263
- return await this.context.uploadRangeFromURL(rangeToString({ offset: destOffset, count }), sourceURL, 0, Object.assign(Object.assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count }), sourceModifiedAccessConditions: options.sourceConditions, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization) }, options), convertTracingToRequestOptionsBase(updatedOptions)));
2267
+ return await this.context.uploadRangeFromURL(rangeToString({ offset: destOffset, count }), sourceURL, 0, Object.assign(Object.assign({ abortSignal: options.abortSignal, sourceRange: rangeToString({ offset: sourceOffset, count }), sourceModifiedAccessConditions: options.sourceConditions, copySourceAuthorization: httpAuthorizationToString(options.sourceAuthorization), fileLastWrittenMode: options.fileLastWrittenMode }, options), convertTracingToRequestOptionsBase(updatedOptions)));
2264
2268
  }
2265
2269
  catch (e) {
2266
2270
  span.setStatus({
@@ -2287,7 +2291,7 @@ export class ShareFileClient extends StorageClient {
2287
2291
  if (offset < 0 || contentLength <= 0) {
2288
2292
  throw new RangeError(`offset must >= 0 and contentLength must be > 0`);
2289
2293
  }
2290
- return await this.context.uploadRange(rangeToString({ count: contentLength, offset }), "clear", 0, Object.assign(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)), { leaseAccessConditions: options.leaseAccessConditions }));
2294
+ return await this.context.uploadRange(rangeToString({ count: contentLength, offset }), "clear", 0, Object.assign(Object.assign({ abortSignal: options.abortSignal }, convertTracingToRequestOptionsBase(updatedOptions)), { leaseAccessConditions: options.leaseAccessConditions, fileLastWrittenMode: options.fileLastWrittenMode }));
2291
2295
  }
2292
2296
  catch (e) {
2293
2297
  span.setStatus({
@@ -3100,6 +3104,10 @@ export class ShareFileClient extends StorageClient {
3100
3104
  ? {
3101
3105
  destinationLeaseId: updatedOptions.destinationLeaseAccessConditions.leaseId,
3102
3106
  }
3107
+ : undefined, fileHttpHeaders: options.contentType
3108
+ ? {
3109
+ fileContentType: options.contentType,
3110
+ }
3103
3111
  : undefined }));
3104
3112
  return {
3105
3113
  destinationFileClient: destFile,