你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

@azure/storage-file package

Aborter

中止实例实现 AbortSignal 接口,可以中止 HTTP 请求。

  • 调用 Aborter.none 以在不超时的情况下创建新的 Aborter 实例。
  • 调用 Aborter.timeout() 以创建具有超时的新 Aborter 实例。

对于现有实例中止程序:

  • 调用 aborter.withTimeout() 以创建并返回超时的子 Aborter 实例。
  • 调用 aborter.withValue(键,值)以创建并返回具有键/值对的子 Aborter 实例。
  • 调用 aborter.abort() 中止当前实例和所有子实例。
  • 调用 aborter.getValue(key)以搜索和获取具有从当前中止器到所有父级的相应键的值。
AccountSASPermissions

仅在NODE.JS运行时中可用。 这是一个帮助程序类,用于构造表示 AccountSAS 授予的权限的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予该作的权限。 设置所有值后,应使用 toString 序列化此值,并将其设置为 <xref:IAccountSASSignatureValues> 对象的权限字段。 可以构造不带此类的权限字符串,但权限的顺序是特定的,此类保证正确性。

AccountSASResourceTypes

仅在NODE.JS运行时中可用。 这是一个帮助程序类,用于构造表示 AccountSAS 可访问的资源的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予对该资源类型的访问权限。 设置所有值后,应使用 toString 序列化此值,并将其设置为 <xref:IAccountSASSignatureValues> 对象上的资源字段。 可以构造没有此类的资源字符串,但资源的顺序是特定的,此类保证正确性。

AccountSASServices

仅在NODE.JS运行时中可用。 这是一个帮助程序类,用于构造表示 AccountSAS 可访问的服务的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予对该服务的访问权限。 设置所有值后,应使用 toString 序列化此值,并将其设置为 <xref:IAccountSASSignatureValues> 对象上的服务字段。 可以构造没有此类的服务字符串,但服务的顺序是特定的,此类保证正确性。

BrowserPolicyFactory

BrowserPolicyFactory 是一个工厂类,可帮助生成 BrowserPolicy 对象。

DirectoryURL

DirectoryURL 表示 Azure 存储目录的 URL,允许你作其文件和目录。

FileSASPermissions

仅在NODE.JS运行时中可用。 这是一个帮助程序类,用于构造表示 ServiceSAS 授予文件的权限的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予该作的权限。 设置所有值后,应使用 toString 序列化此值,并将其设置为 <xref:IFileSASSignatureValues> 对象的权限字段。 可以构造不带此类的权限字符串,但权限的顺序是特定的,此类保证正确性。

FileSystemAttributes

这是一个帮助程序类,用于构造表示文件或目录的 NTFS 属性的字符串。

FileURL

FileURL 表示 Azure 存储文件的 URL。

KeepAlivePolicyFactory

KeepAlivePolicyFactory 是一个工厂类,可帮助生成 KeepAlivePolicy 对象。

LoggingPolicyFactory

LoggingPolicyFactory 是一个工厂类,可帮助生成 LoggingPolicy 对象。

Pipeline

包含 HTTP 请求策略的 Pipeline 类。 可以通过调用 StorageURL.newPipeline()创建默认管道。 或者,可以通过管道构造函数创建自己的策略的管道。 在实现自定义管道之前,请参阅 StorageURL.newPipeline()并提供的策略作为参考。

RetryPolicyFactory

RetryPolicyFactory 是一个工厂类,可帮助生成 RetryPolicy 对象。

SASQueryParameters

表示构成 Azure 存储 SAS 查询参数的组件。 此类型不是由用户直接构造的;它仅由 <xref:IAccountSASSignatureValues> 和 <xref:IFileSASSignatureValues> 类型生成。 生成后,可以将其编码为 {@code String} 并直接追加到 URL(不过,如果存在现有的查询参数,这可能会影响追加这些查询参数的适当方法),应谨慎使用。 注意:此类的实例是不可变的。

ServiceURL

ServiceURL 表示 Azure 存储文件服务的 URL,允许你作文件共享。

ShareSASPermissions

这是一个帮助程序类,用于构造表示 ServiceSAS 授予共享的权限的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予该作的权限。 设置所有值后,应使用 toString 序列化此值,并将其设置为 <xref:IFileSASSignatureValues> 对象的权限字段。 可以构造不带此类的权限字符串,但权限的顺序是特定的,此类保证正确性。

ShareURL

ShareURL 表示 Azure 存储共享的 URL,允许你作其目录和文件。

StorageURL

ServiceURL 表示 ServiceURL、ContainerURL 等的基于 URL 类。

TelemetryPolicyFactory

TelemetryPolicyFactory 是帮助生成 TelemetryPolicy 对象的工厂类。

UniqueRequestIDPolicyFactory

UniqueRequestIDPolicyFactory 是帮助生成 UniqueRequestIDPolicy 对象的工厂类。

AnonymousCredential

AnonymousCredential 提供 credentialPolicyCreator 成员,用于创建 AnonymousCredentialPolicy 对象。 AnonymousCredentialPolicy 与 HTTP(S) 请求一起使用,这些请求读取公共资源或用于共享访问签名(SAS)。

Credential

凭据是 Azure 存储 HTTP 请求签名的抽象类。 此类将托管生成 CredentialPolicy 的 credentialPolicyCreator 工厂。

SharedKeyCredential

仅在NODE.JS运行时中可用。 用于 Azure 存储服务的帐户密钥授权的 SharedKeyCredential。

Directory

表示目录的类。

File

表示文件的类。

Service

表示服务的类。

Share

表示共享的类。

StorageClient
StorageClientContext
AnonymousCredentialPolicy

AnonymousCredentialPolicy 与 HTTP(S) 请求一起使用,这些请求读取公共资源或用于共享访问签名(SAS)。

BrowserPolicy

BrowserPolicy 将处理 Node.js 和浏览器运行时之间的差异,包括:

  1. 浏览器通过添加条件标头(如“IF_MODIFIED_SINCE”)来缓存 GET/HEAD 请求。 BrowserPolicy 是一种策略,用于将时间戳查询添加到 GET/HEAD 请求 URL,从而避免浏览器缓存。

  2. 删除 Cookie 标头以安全

  3. 删除内容长度标头以避免浏览器警告

CredentialPolicy

用于在发送之前对 HTTP(S) 请求进行签名的凭据策略。 这是一个抽象类。

KeepAlivePolicy

KeepAlivePolicy 是用于控制每个请求的保持活动设置的策略。

LoggingPolicy

LoggingPolicy 是用于记录请求的策略。

RetryPolicy

实现指数重试和线性重试的重试策略。

SharedKeyCredentialPolicy

SharedKeyCredentialPolicy 是用于使用共享密钥对 HTTP 请求进行签名的策略。

TelemetryPolicy

TelemetryPolicy 是用于标记每个请求的用户代理标头的策略。

UniqueRequestIDPolicy

UniqueRequestIDPolicy 将 UUID 生成为 x-ms-request-id 标头值。

Batch

Batch 提供具有并发限制的基本并行执行。 当某个执行的作引发错误时,将停止执行左侧作。 但 Batch 无法取消正在进行的作,需要自行取消它们。

BufferScheduler

此类接受 Node.js 可读流作为输入,并将数据从流读取到内部缓冲区结构,直到达到 maxBuffers 为止。 每个可用的缓冲区都会尝试触发 outgoingHandler。 内部缓冲区结构包括传入缓冲区数组和传出缓冲区数组。 传入缓冲区数组包含“空”缓冲区,可以填充新的传入数据。 传出数组包括要由 outgoingHandler 处理的填充缓冲区。 上述每个缓冲区大小都由参数 bufferSize 定义。

NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING

NUM_OF_ALL_BUFFERS <= maxBuffers

性能改进提示:

  1. 输入流 highWaterMark 最好使用 bufferSize 参数设置相同的值,这将避免 Buffer.concat()作。
  2. 并行度应设置一个小于 maxBuffers 的值,这有助于减少传出处理程序等待流数据的可能性。 在这种情况下,将阻止传出处理程序。 传出队列不应为空。
RetriableReadableStream

仅在NODE.JS运行时中可用。 当内部 ReadableStream 意外结束时,Node.js ReadableStream 将在内部重试。

接口

IDirectoryCreateOptions
IDirectoryForceCloseHandlesSegmentOptions
IDirectoryListFilesAndDirectoriesSegmentOptions
IDirectoryListHandlesSegmentOptions
IDirectoryProperties
IFileCreateOptions
IFileDownloadOptions
IFileGetRangeListOptions

该选项定义为与 REST 定义的奇偶校验。 虽然现在尚未准备好使用,但考虑到源内容的 Crc64 无法访问。

IFileListHandlesSegmentOptions
IFileProperties
IFileStartCopyOptions
IFileUploadRangeOptions
ISetPropertiesResponse
IAccountSASSignatureValues

仅在NODE.JS运行时中可用。 IAccountSASSignatureValues 用于为 Azure 存储帐户生成共享访问签名(SAS)。 正确设置此处的所有值后,调用 generateSASQueryParameters()以获取实际可应用于文件 URL 的 SAS 的表示形式。 注意:此类和 <xref:SASQueryParameters> 都存在,因为前者是可变的,而逻辑表示形式是不可变的,用于生成实际的 REST 请求。

IFileSASSignatureValues

仅在NODE.JS运行时中可用。 IFileSASSignatureValues 用于帮助生成共享或文件的文件服务 SAS 令牌。

IIPRange

SAS 允许的 IP 范围。

IRange

服务作的范围。

IKeepAliveOptions

KeepAlivePolicy 选项的接口。

IRequestLogOptions

RequestLogOptions 配置重试策略的行为。

IPipelineOptions

管道构造函数的选项接口。

IRetryOptions

重试选项接口。

IServiceListSharesSegmentOptions
IShareCreateOptions
IShareCreateSnapshotOptions
IShareDeleteMethodOptions
ISignedIdentifier
INewPipelineOptions

Pipeline.newPipeline 方法的选项接口。

ITelemetryOptions

TelemetryPolicy 选项的接口。

AccessPolicy

访问策略。

CorsRule

CORS 是一项 HTTP 功能,它使 Web 应用程序能够在一个域下运行,以访问另一个域中的资源。 Web 浏览器实施安全限制,称为同源策略,防止网页在不同的域中调用 API;CORS 提供了一种安全的方法,允许一个域(源域)在另一个域中调用 API。

DirectoryCreateHeaders

定义创建作的标头。

DirectoryCreateOptionalParams

可选参数。

DirectoryDeleteHeaders

定义 Delete作的标头。

DirectoryDeleteMethodOptionalParams

可选参数。

DirectoryForceCloseHandlesHeaders

定义 ForceCloseHandles作的标头。

DirectoryForceCloseHandlesOptionalParams

可选参数。

DirectoryGetPropertiesHeaders

定义 GetProperties作的标头。

DirectoryGetPropertiesOptionalParams

可选参数。

DirectoryItem

列出的目录项。

DirectoryListFilesAndDirectoriesSegmentHeaders

定义 ListFilesAndDirectoriesSegment作的标头。

DirectoryListFilesAndDirectoriesSegmentOptionalParams

可选参数。

DirectoryListHandlesHeaders

定义 ListHandles作的标头。

DirectoryListHandlesOptionalParams

可选参数。

DirectorySetMetadataHeaders

定义 SetMetadata作的标头。

DirectorySetMetadataOptionalParams

可选参数。

DirectorySetPropertiesHeaders

定义 SetProperties作的标头。

DirectorySetPropertiesOptionalParams

可选参数。

FileAbortCopyHeaders

定义 AbortCopy作的标头。

FileAbortCopyOptionalParams

可选参数。

FileCreateHeaders

定义创建作的标头。

FileCreateOptionalParams

可选参数。

FileDeleteHeaders

定义 Delete作的标头。

FileDeleteMethodOptionalParams

可选参数。

FileDownloadHeaders

定义下载作的标头。

FileDownloadOptionalParams

可选参数。

FileForceCloseHandlesHeaders

定义 ForceCloseHandles作的标头。

FileForceCloseHandlesOptionalParams

可选参数。

FileGetPropertiesHeaders

定义 GetProperties作的标头。

FileGetPropertiesOptionalParams

可选参数。

FileGetRangeListHeaders

定义 GetRangeList作的标头。

FileGetRangeListOptionalParams

可选参数。

FileHTTPHeaders

一组作的其他参数,例如:File_create、File_setHTTPHeaders。

FileItem

列出的文件项。

FileListHandlesHeaders

定义 ListHandles作的标头。

FileListHandlesOptionalParams

可选参数。

FileProperty

文件属性。

FileSetHTTPHeadersHeaders

定义 SetHTTPHeaders作的标头。

FileSetHTTPHeadersOptionalParams

可选参数。

FileSetMetadataHeaders

定义 SetMetadata作的标头。

FileSetMetadataOptionalParams

可选参数。

FileStartCopyHeaders

定义 StartCopy作的标头。

FileStartCopyOptionalParams

可选参数。

FileUploadRangeFromURLHeaders

定义 UploadRangeFromURL作的标头。

FileUploadRangeFromURLOptionalParams

可选参数。

FileUploadRangeHeaders

定义 UploadRange作的标头。

FileUploadRangeOptionalParams

可选参数。

FilesAndDirectoriesListSegment

可从 Directory 列出的条目的摘要。

HandleItem

列出的 Azure 存储句柄项。

ListFilesAndDirectoriesSegmentResponse

目录和文件的枚举。

ListHandlesResponse

句柄的枚举。

ListSharesResponse

共享的枚举。

Metrics

文件服务的存储分析指标。

Permission

安全描述符定义语言(SDDL)中所述的权限(安全描述符)。

Range

Azure 存储文件范围。

RetentionPolicy

保留策略。

ServiceGetPropertiesHeaders

定义 GetProperties作的标头。

ServiceGetPropertiesOptionalParams

可选参数。

ServiceListSharesSegmentHeaders

定义 ListSharesSegment作的标头。

ServiceListSharesSegmentOptionalParams

可选参数。

ServiceSetPropertiesHeaders

定义 SetProperties作的标头。

ServiceSetPropertiesOptionalParams

可选参数。

ShareCreateHeaders

定义创建作的标头。

ShareCreateOptionalParams

可选参数。

ShareCreatePermissionHeaders

定义 CreatePermission作的标头。

ShareCreatePermissionOptionalParams

可选参数。

ShareCreateSnapshotHeaders

定义 CreateSnapshot作的标头。

ShareCreateSnapshotOptionalParams

可选参数。

ShareDeleteHeaders

定义 Delete作的标头。

ShareDeleteMethodOptionalParams

可选参数。

ShareGetAccessPolicyHeaders

定义 GetAccessPolicy作的标头。

ShareGetAccessPolicyOptionalParams

可选参数。

ShareGetPermissionHeaders

定义 GetPermission作的标头。

ShareGetPermissionOptionalParams

可选参数。

ShareGetPropertiesHeaders

定义 GetProperties作的标头。

ShareGetPropertiesOptionalParams

可选参数。

ShareGetStatisticsHeaders

定义 GetStatistics作的标头。

ShareGetStatisticsOptionalParams

可选参数。

ShareItem

列出的 Azure 存储共享项。

ShareProperties

共享的属性。

ShareSetAccessPolicyHeaders

定义 SetAccessPolicy作的标头。

ShareSetAccessPolicyOptionalParams

可选参数。

ShareSetMetadataHeaders

定义 SetMetadata作的标头。

ShareSetMetadataOptionalParams

可选参数。

ShareSetQuotaHeaders

定义 SetQuota作的标头。

ShareSetQuotaOptionalParams

可选参数。

ShareStats

共享的统计信息。

SignedIdentifier

已签名的标识符。

SourceModifiedAccessConditions

uploadRangeFromURL作的其他参数。

StorageError

表示 StorageError 的接口。

StorageServiceProperties

存储服务属性。

IDownloadFromAzureFileOptions

DownloadAzurefileToBuffer 的选项接口。

IUploadToAzureFileOptions

uploadFileToAzureFile 和 uploadSeekableStreamToAzureFile 的选项接口。

IUploadStreamToAzureFileOptions

uploadStreamToAzureFile 的选项接口。

IFileAndDirectoryCreateCommonOptions
IFileAndDirectorySetPropertiesCommonOptions
IFileHTTPHeaders
IMetadata
IRetriableReadableStreamOptions

类型别名

FileDownloadResponse

包含下载作的响应数据。

FileGetRangeListResponse

包含 getRangeList作的响应数据。

ShareGetAccessPolicyResponse

包含 getAccessPolicy作的响应数据。

ShareGetStatisticsResponse

包含 getStatistics作的响应数据。

CredentialPolicyCreator

一个工厂函数,用于创建使用提供的 nextPolicy 的新 CredentialPolicy。

CopyStatusType

定义 CopyStatusType 的值。 可能的值包括:“pending”、“success”、“aborted”、“failed”

DeleteSnapshotsOptionType

定义 DeleteSnapshotsOptionType 的值。 可能的值包括:“include”

DirectoryCreateResponse

包含创建作的响应数据。

DirectoryDeleteResponse

包含 deleteMethod作的响应数据。

DirectoryForceCloseHandlesResponse

包含 forceCloseHandles作的响应数据。

DirectoryGetPropertiesResponse

包含 getProperties作的响应数据。

DirectoryListFilesAndDirectoriesSegmentResponse

包含 listFilesAndDirectoriesSegment作的响应数据。

DirectoryListHandlesResponse

包含 listHandles作的响应数据。

DirectorySetMetadataResponse

包含 setMetadata作的响应数据。

DirectorySetPropertiesResponse

包含 setProperties作的响应数据。

FileAbortCopyResponse

包含中止Copy作的响应数据。

FileCreateResponse

包含创建作的响应数据。

FileDeleteResponse

包含 deleteMethod作的响应数据。

FileForceCloseHandlesResponse

包含 forceCloseHandles作的响应数据。

FileGetPropertiesResponse

包含 getProperties作的响应数据。

FileListHandlesResponse

包含 listHandles作的响应数据。

FileRangeWriteType

定义 FileRangeWriteType 的值。 可能的值包括:“update”、“clear”

FileSetHTTPHeadersResponse

包含 setHTTPHeaders作的响应数据。

FileSetMetadataResponse

包含 setMetadata作的响应数据。

FileStartCopyResponse

包含 startCopy作的响应数据。

FileType

定义 FileType 的值。 可能的值包括:“File”

FileUploadRangeFromURLResponse

包含 uploadRangeFromURL作的响应数据。

FileUploadRangeResponse

包含 uploadRange作的响应数据。

ListSharesIncludeType

定义 ListSharesIncludeType 的值。 可能的值包括:“snapshots”、“metadata”

ServiceGetPropertiesResponse

包含 getProperties作的响应数据。

ServiceListSharesSegmentResponse

包含 listSharesSegment作的响应数据。

ServiceSetPropertiesResponse

包含 setProperties作的响应数据。

ShareCreatePermissionResponse

包含 createPermission作的响应数据。

ShareCreateResponse

包含创建作的响应数据。

ShareCreateSnapshotResponse

包含 createSnapshot作的响应数据。

ShareDeleteResponse

包含 deleteMethod作的响应数据。

ShareGetPermissionResponse

包含 getPermission作的响应数据。

ShareGetPropertiesResponse

包含 getProperties作的响应数据。

ShareSetAccessPolicyResponse

包含 setAccessPolicy作的响应数据。

ShareSetMetadataResponse

包含 setMetadata作的响应数据。

ShareSetQuotaResponse

包含 setQuota作的响应数据。

StorageErrorCode

定义 StorageErrorCode 的值。 可能的值包括:“AccountAlreadyExists”、“AccountBeingCreated”、“AccountIsDisabled”、“AuthenticationFailed”、“AuthorizationFailure”、“ConditionHeadersNotSupported”、 “ConditionNotMet”、“EmptyMetadataKey”、“InsufficientAccountPermissions”、“InternalError”、“InvalidAuthenticationInfo”、“InvalidHeaderValue”、“InvalidHttpVerb”、“InvalidInput”、“InvalidMd5”、“InvalidMetadata”、“InvalidQueryParameterValue”、“InvalidRange”、“InvalidResourceName”、“InvalidResourceName”、“InvalidUri”、InvalidXmlDocument“、”InvalidXmlNodeValue“、”Md5Mismatch“、”MetadataTooLarge“、”MissingContentLengthHeader“、”MissingRequiredQueryParameter“、”MissingRequiredHeader“、”MissingRequiredXmlNode“、 'MultipleConditionHeadersNotSupported', 'OperationTimedOut', 'OutOfRangeInput', 'OutOfRangeQueryParameterValue', 'RequestBodyTooLarge', 'ResourceTypeMismatch', 'RequestUrlFailedToParse', 'ResourceAlreadyExists', 'ResourceNotFound', 'ServerBusy', 'UnsupportedHeader', 'UnsupportedXmlNode“、”UnsupportedQueryParameter“、”UnsupportedHttpVerb“、”CannotDeleteFileOrDirectory“、”ClientCacheFlushDelay“、”DeletePending“、”DirectoryNotEmpty“、”FileLockConflict“、”InvalidFileOrDirectoryPathName“、 'ParentNotFound', 'ReadOnlyAttribute', 'ShareAlreadyExists', 'ShareBeingDeleted', 'ShareDisabled', 'ShareNotFound', 'SharingViolation', 'ShareSnapshotInProgress', 'ShareSnapshotCountExceeded', 'ShareSnapshotOperationNotSupported', 'ShareHasSnapshots“, 'ContainerQuotaDowngradeNotAllowed'

FileAttributesPreserveType

指示保持现有文件属性不变。

FilePermissionInheritType

指示从父目录继承文件权限。

FilePermissionPreserveType

指示保持现有文件权限值不变。

TimeNowType

指示设置为请求的时间。

TimePreserveType

指示保持现有时间值不变。

Operation

作是一个异步函数,由 Batch 执行和管理。

OutgoingHandler

OutgoingHandler 是由 BufferScheduler 触发的异步函数。

ReadableStreamGetter

枚举

SASProtocol

生成的 SAS 的协议。

RetryPolicyType

RetryPolicy 类型。

函数

generateAccountSASQueryParameters(IAccountSASSignatureValues, SharedKeyCredential)

仅在NODE.JS运行时中可用。 生成一个 <xref:SASQueryParameters> 对象,该对象包含发出实际 REST 请求所需的所有 SAS 查询参数。

generateFileSASQueryParameters(IFileSASSignatureValues, SharedKeyCredential)

仅在NODE.JS运行时中可用。 创建 SASQueryParameters 的实例。

仅接受创建 SAS 所需的设置。 对于可选设置,请直接设置相应的属性,例如权限、startTime 和标识符。

警告:如果未提供标识符,则需要权限和 expiryTime。 如果最初使用此构造函数,则必须手动为标识符或 expiryTime & 权限赋值。

ipRangeToString(IIPRange)

生成 IPRange 格式字符串。 例如:“8.8.8.8”或“1.1.1.1-255.255.255.255”

rangeToString(IRange)

生成范围字符串。 例如:“bytes=255-”或“bytes=0-511”

uploadBrowserDataToAzureFile(Aborter, Blob | ArrayBuffer | ArrayBufferView, FileURL, IUploadToAzureFileOptions)

仅在浏览器中可用。 将浏览器 Blob/File/ArrayBuffer/ArrayBufferView 对象上传到 Azure 文件。

downloadAzureFileToBuffer(Aborter, Buffer, FileURL, number, undefined | number, IDownloadFromAzureFileOptions)

仅在NODE.JS运行时中可用。 将 Azure 文件并行下载到缓冲区。 偏移量和计数是可选的,为两者传递 0 以下载整个文件。

uploadFileToAzureFile(Aborter, string, FileURL, IUploadToAzureFileOptions)

仅在NODE.JS运行时中可用。 将本地文件上传到 Azure 文件。

uploadStreamToAzureFile(Aborter, Readable, number, FileURL, number, number, IUploadStreamToAzureFileOptions)

仅在NODE.JS运行时中可用。 将 Node.js 可读流上传到 Azure 文件中。 此方法将尝试创建 Azure,然后开始按区块上传区块。 区块的大小由 bufferSize 参数定义。 请确保流的潜在大小不会超过文件大小。

性能改进提示:

  • 输入流 highWaterMark 最好使用 bufferSize 参数设置相同的值,这将避免 Buffer.concat()作。
fileAttributesToString(FileSystemAttributes | FileAttributesPreserveType)
fileCreationTimeToString(Date | TimeNowType | TimePreserveType)
fileLastWriteTimeToString(Date | TimeNowType | TimePreserveType)
validateAndSetDefaultsForFileAndDirectoryCreateCommonOptions(IFileAndDirectoryCreateCommonOptions)
validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(IFileAndDirectorySetPropertiesCommonOptions)
validateFilePermissionOptions(undefined | string, undefined | string)
NewRetryPolicyFactory(IRetryOptions)

用于生成 RetryPolicy 工厂的工厂方法。

blobToArrayBuffer(Blob)

将浏览器 Blob 对象转换为 ArrayBuffer。

appendToURLPath(string, string)

将字符串追加到 URL 路径。 当 URL 路径以“/”结尾时,将删除字符串前面的重复的“/”。

base64decode(string)

Base64 解码。

base64encode(string)

Base64 编码。

delay(number, AbortSignalLike, Error)

延迟指定的时间间隔。

escapeURLPath(string)

必须为 Blob 或文件等存储服务正确转义保留 URL 字符。

JSv10 SDK 的 URL 编码和转义策略

当客户将 URL 字符串传递到 XXXURL 类构造函数中时,URL 字符串可能已编码或不编码。 但在发送到 Azure 存储服务器之前,必须对 URL 进行编码。 但是,SDK 很难猜测 URL 字符串是否已编码。 我们有 2 个潜在策略,并为 XXXURL 构造函数选择策略 2。

策略一:假设客户 URL 字符串未编码,并且始终在 SDK 中对 URL 字符串进行编码。

这是旧版 V2 SDK 的作用,简单且适用于大多数情况。

  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b:"时,SDK 会将它编码为”http://account.blob.core.windows.net/con/b%3A"并发送到服务器。 将创建名为“b:”的 Blob。
  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b%3A"时,SDK 会将它编码为”http://account.blob.core.windows.net/con/b%253A"并发送到服务器。 将创建名为“b%3A”的 blob。

但是,此策略将无法创建名称中包含“?” 的 Blob。 由于当客户 URL 字符串为“http://account.blob.core.windows.net/con/blob?name"时,”?name“将被视为 URL 参数而不是 blob 名称。 如果客户 URL 字符串为“http://account.blob.core.windows.net/con/blob%3Fname",则会创建名为”blob%3Fname“的 blob。 V2 SDK 没有此问题,因为它不允许客户传入完整 URL,因此它接受单独的 Blob 名称和 encodeURIComponent。 无法接受 SDK 无法创建包含“?”的 Blob 名称。 因此,我们实施策略 2:

策略二:SDK 不假定 URL 已编码或未编码。 它只会转义特殊字符。

这是 V10 Blob Go SDK 的作用。 它接受 Go 中的 URL 类型,并调用 URL。EscapedPath() 将特殊字符转义为未转义。

  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b:"时,SDK 将转义”:“如”http://account.blob.core.windows.net/con/b%3A"并发送到服务器。 将创建名为“b:”的 Blob。
  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b%3A"时,没有特殊字符,因此发送”http://account.blob.core.windows.net/con/b%3A"到服务器。 将创建名为“b:”的 Blob。
  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b%253A"时,没有特殊字符,因此发送”http://account.blob.core.windows.net/con/b%253A"到服务器。 将创建名为“b%3A”的 blob。

此策略使我们能够灵活地使用任何特殊字符进行创建。 但是,“%”将被视为特殊字符,如果 URL 字符串未编码,则 URL 字符串中不应有“%”,否则 URL 不是有效的 URL。 如果客户需要在 blob 名称中创建包含“%”的 blob,请使用“%25”%“的”%”。 就像上面的第三个示例一样。 以下 URL 字符串无效:

  • “http://account.blob.core.windows.net/con/b%"
  • “http://account.blob.core.windows.net/con/b%2"
  • “http://account.blob.core.windows.net/con/b%G"

另一个特殊字符是“?”,使用“%2F”来表示 URL 字符串中带有“?”的 blob 名称。

容器名称、blobName 或其他特定 XXXName 参数的策略,例如 BlobURL.fromContainerURL(containerURL, blobName)

我们将应用策略 1,并为 blobName 等参数调用 encodeURIComponent。 因为客户传入的内容是纯名称而不是 URL。

getURLParameter(string, string)

按名称获取 URL 参数。

getURLPath(string)

从 URL 字符串获取 URL 路径。

getURLQueries(string)

从 URL 字符串获取 URL 查询键值对。

padStart(string, number, undefined | string)

String.prototype.padStart()

setURLHost(string, string)

设置 URL 主机。

setURLParameter(string, string, undefined | string)

设置 URL 参数名称和值。 如果 URL 参数中存在名称,旧值将替换为名称键。 如果未提供值,将删除该参数。

truncatedISO8061Date(Date, undefined | false | true)

将日期舍入为秒。

streamToBuffer(ReadableStream, Buffer, number, number, undefined | string)

将可读流读入缓冲区。 将缓冲区从偏移量填充到末尾。

函数详细信息

generateAccountSASQueryParameters(IAccountSASSignatureValues, SharedKeyCredential)

仅在NODE.JS运行时中可用。 生成一个 <xref:SASQueryParameters> 对象,该对象包含发出实际 REST 请求所需的所有 SAS 查询参数。

function generateAccountSASQueryParameters(accountSASSignatureValues: IAccountSASSignatureValues, sharedKeyCredential: SharedKeyCredential)

参数

accountSASSignatureValues
IAccountSASSignatureValues
sharedKeyCredential
SharedKeyCredential

返回

generateFileSASQueryParameters(IFileSASSignatureValues, SharedKeyCredential)

仅在NODE.JS运行时中可用。 创建 SASQueryParameters 的实例。

仅接受创建 SAS 所需的设置。 对于可选设置,请直接设置相应的属性,例如权限、startTime 和标识符。

警告:如果未提供标识符,则需要权限和 expiryTime。 如果最初使用此构造函数,则必须手动为标识符或 expiryTime & 权限赋值。

function generateFileSASQueryParameters(fileSASSignatureValues: IFileSASSignatureValues, sharedKeyCredential: SharedKeyCredential)

参数

fileSASSignatureValues
IFileSASSignatureValues
sharedKeyCredential
SharedKeyCredential

返回

ipRangeToString(IIPRange)

生成 IPRange 格式字符串。 例如:“8.8.8.8”或“1.1.1.1-255.255.255.255”

function ipRangeToString(ipRange: IIPRange)

参数

ipRange
IIPRange

返回

string

rangeToString(IRange)

生成范围字符串。 例如:“bytes=255-”或“bytes=0-511”

function rangeToString(iRange: IRange)

参数

iRange
IRange

返回

string

uploadBrowserDataToAzureFile(Aborter, Blob | ArrayBuffer | ArrayBufferView, FileURL, IUploadToAzureFileOptions)

仅在浏览器中可用。 将浏览器 Blob/File/ArrayBuffer/ArrayBufferView 对象上传到 Azure 文件。

function uploadBrowserDataToAzureFile(aborter: Aborter, browserData: Blob | ArrayBuffer | ArrayBufferView, fileURL: FileURL, options?: IUploadToAzureFileOptions)

参数

aborter
Aborter

使用 Aborter.none 或 Aborter.timeout() 创建新的 Aborter 实例,以获取有关请求取消的更多示例的 Aborter 文档

browserData

Blob | ArrayBuffer | ArrayBufferView

Blob、文件、ArrayBuffer 或 ArrayBufferView

fileURL
FileURL

返回

Promise<void>

downloadAzureFileToBuffer(Aborter, Buffer, FileURL, number, undefined | number, IDownloadFromAzureFileOptions)

仅在NODE.JS运行时中可用。 将 Azure 文件并行下载到缓冲区。 偏移量和计数是可选的,为两者传递 0 以下载整个文件。

function downloadAzureFileToBuffer(aborter: Aborter, buffer: Buffer, fileURL: FileURL, offset: number, count?: undefined | number, options?: IDownloadFromAzureFileOptions)

参数

aborter
Aborter

使用 Aborter.none 或 Aborter.timeout() 创建新的 Aborter 实例,以获取有关请求取消的更多示例的 Aborter 文档

buffer

Buffer

要填充的缓冲区,长度必须大于计数

fileURL
FileURL

FileURL 对象

offset

number

要从中下载的 Azure 文件的位置

count

undefined | number

返回

Promise<void>

uploadFileToAzureFile(Aborter, string, FileURL, IUploadToAzureFileOptions)

仅在NODE.JS运行时中可用。 将本地文件上传到 Azure 文件。

function uploadFileToAzureFile(aborter: Aborter, filePath: string, fileURL: FileURL, options?: IUploadToAzureFileOptions)

参数

aborter
Aborter

使用 Aborter.none 或 Aborter.timeout() 创建新的 Aborter 实例,以获取有关请求取消的更多示例的 Aborter 文档

filePath

string

本地文件的完整路径

fileURL
FileURL

FileURL

返回

Promise<void>

uploadStreamToAzureFile(Aborter, Readable, number, FileURL, number, number, IUploadStreamToAzureFileOptions)

仅在NODE.JS运行时中可用。 将 Node.js 可读流上传到 Azure 文件中。 此方法将尝试创建 Azure,然后开始按区块上传区块。 区块的大小由 bufferSize 参数定义。 请确保流的潜在大小不会超过文件大小。

性能改进提示:

  • 输入流 highWaterMark 最好使用 bufferSize 参数设置相同的值,这将避免 Buffer.concat()作。
function uploadStreamToAzureFile(aborter: Aborter, stream: Readable, size: number, fileURL: FileURL, bufferSize: number, maxBuffers: number, options?: IUploadStreamToAzureFileOptions)

参数

aborter
Aborter

使用 Aborter.none 或 Aborter.timeout() 创建新的 Aborter 实例,以获取有关请求取消的更多示例的 Aborter 文档

stream

Readable

Node.js 可读流。 必须小于或等于文件大小。

size

number

要创建的文件的大小。 允许的最大大小为 1TB。 如果此值大于流大小,则文件结尾中将有空字节。

fileURL
FileURL

FileURL 实例

bufferSize

number

每个以字节为单位分配的缓冲区的大小,以及上传的文件期间的区块/范围大小。 大小必须 > 0,<= 4 * 1024 * 1024 (4MB)

maxBuffers

number

最大缓冲区将在上传期间分配,与最大上传并发的正相关

返回

Promise<void>

fileAttributesToString(FileSystemAttributes | FileAttributesPreserveType)

function fileAttributesToString(fileAttributes: FileSystemAttributes | FileAttributesPreserveType)

参数

返回

string

fileCreationTimeToString(Date | TimeNowType | TimePreserveType)

function fileCreationTimeToString(time: Date | TimeNowType | TimePreserveType)

参数

返回

string

fileLastWriteTimeToString(Date | TimeNowType | TimePreserveType)

function fileLastWriteTimeToString(time: Date | TimeNowType | TimePreserveType)

参数

返回

string

validateAndSetDefaultsForFileAndDirectoryCreateCommonOptions(IFileAndDirectoryCreateCommonOptions)

function validateAndSetDefaultsForFileAndDirectoryCreateCommonOptions(options: IFileAndDirectoryCreateCommonOptions)

参数

返回

validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(IFileAndDirectorySetPropertiesCommonOptions)

function validateAndSetDefaultsForFileAndDirectorySetPropertiesCommonOptions(options: IFileAndDirectorySetPropertiesCommonOptions)

参数

返回

validateFilePermissionOptions(undefined | string, undefined | string)

function validateFilePermissionOptions(filePermission?: undefined | string, filePermissionKey?: undefined | string)

参数

filePermission

undefined | string

filePermissionKey

undefined | string

NewRetryPolicyFactory(IRetryOptions)

用于生成 RetryPolicy 工厂的工厂方法。

function NewRetryPolicyFactory(retryOptions?: IRetryOptions)

参数

retryOptions
IRetryOptions

返回

RequestPolicyFactory

blobToArrayBuffer(Blob)

将浏览器 Blob 对象转换为 ArrayBuffer。

function blobToArrayBuffer(blob: Blob)

参数

blob

Blob

返回

Promise<ArrayBuffer>

appendToURLPath(string, string)

将字符串追加到 URL 路径。 当 URL 路径以“/”结尾时,将删除字符串前面的重复的“/”。

function appendToURLPath(url: string, name: string)

参数

url

string

源 URL 字符串

name

string

要追加到 URL 的字符串

返回

string

更新的 URL 字符串

base64decode(string)

Base64 解码。

function base64decode(encodedString: string)

参数

encodedString

string

返回

string

base64encode(string)

Base64 编码。

function base64encode(content: string)

参数

content

string

返回

string

delay(number, AbortSignalLike, Error)

延迟指定的时间间隔。

function delay(timeInMs: number, aborter?: AbortSignalLike, abortError?: Error)

参数

timeInMs

number

aborter

AbortSignalLike

abortError

Error

返回

Promise<unknown>

escapeURLPath(string)

必须为 Blob 或文件等存储服务正确转义保留 URL 字符。

JSv10 SDK 的 URL 编码和转义策略

当客户将 URL 字符串传递到 XXXURL 类构造函数中时,URL 字符串可能已编码或不编码。 但在发送到 Azure 存储服务器之前,必须对 URL 进行编码。 但是,SDK 很难猜测 URL 字符串是否已编码。 我们有 2 个潜在策略,并为 XXXURL 构造函数选择策略 2。

策略一:假设客户 URL 字符串未编码,并且始终在 SDK 中对 URL 字符串进行编码。

这是旧版 V2 SDK 的作用,简单且适用于大多数情况。

  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b:"时,SDK 会将它编码为”http://account.blob.core.windows.net/con/b%3A"并发送到服务器。 将创建名为“b:”的 Blob。
  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b%3A"时,SDK 会将它编码为”http://account.blob.core.windows.net/con/b%253A"并发送到服务器。 将创建名为“b%3A”的 blob。

但是,此策略将无法创建名称中包含“?” 的 Blob。 由于当客户 URL 字符串为“http://account.blob.core.windows.net/con/blob?name"时,”?name“将被视为 URL 参数而不是 blob 名称。 如果客户 URL 字符串为“http://account.blob.core.windows.net/con/blob%3Fname",则会创建名为”blob%3Fname“的 blob。 V2 SDK 没有此问题,因为它不允许客户传入完整 URL,因此它接受单独的 Blob 名称和 encodeURIComponent。 无法接受 SDK 无法创建包含“?”的 Blob 名称。 因此,我们实施策略 2:

策略二:SDK 不假定 URL 已编码或未编码。 它只会转义特殊字符。

这是 V10 Blob Go SDK 的作用。 它接受 Go 中的 URL 类型,并调用 URL。EscapedPath() 将特殊字符转义为未转义。

  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b:"时,SDK 将转义”:“如”http://account.blob.core.windows.net/con/b%3A"并发送到服务器。 将创建名为“b:”的 Blob。
  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b%3A"时,没有特殊字符,因此发送”http://account.blob.core.windows.net/con/b%3A"到服务器。 将创建名为“b:”的 Blob。
  • 当客户 URL 字符串为“http://account.blob.core.windows.net/con/b%253A"时,没有特殊字符,因此发送”http://account.blob.core.windows.net/con/b%253A"到服务器。 将创建名为“b%3A”的 blob。

此策略使我们能够灵活地使用任何特殊字符进行创建。 但是,“%”将被视为特殊字符,如果 URL 字符串未编码,则 URL 字符串中不应有“%”,否则 URL 不是有效的 URL。 如果客户需要在 blob 名称中创建包含“%”的 blob,请使用“%25”%“的”%”。 就像上面的第三个示例一样。 以下 URL 字符串无效:

  • “http://account.blob.core.windows.net/con/b%"
  • “http://account.blob.core.windows.net/con/b%2"
  • “http://account.blob.core.windows.net/con/b%G"

另一个特殊字符是“?”,使用“%2F”来表示 URL 字符串中带有“?”的 blob 名称。

容器名称、blobName 或其他特定 XXXName 参数的策略,例如 BlobURL.fromContainerURL(containerURL, blobName)

我们将应用策略 1,并为 blobName 等参数调用 encodeURIComponent。 因为客户传入的内容是纯名称而不是 URL。

function escapeURLPath(url: string)

参数

url

string

返回

string

getURLParameter(string, string)

按名称获取 URL 参数。

function getURLParameter(url: string, name: string)

参数

url

string

name

string

返回

string | string[] | undefined

getURLPath(string)

从 URL 字符串获取 URL 路径。

function getURLPath(url: string)

参数

url

string

源 URL 字符串

返回

string | undefined

getURLQueries(string)

从 URL 字符串获取 URL 查询键值对。

function getURLQueries(url: string)

参数

url

string

返回

[key: string]: string

padStart(string, number, undefined | string)

String.prototype.padStart()

function padStart(currentString: string, targetLength: number, padString?: undefined | string)

参数

currentString

string

targetLength

number

padString

undefined | string

返回

string

setURLHost(string, string)

设置 URL 主机。

function setURLHost(url: string, host: string)

参数

url

string

源 URL 字符串

host

string

新建主机字符串

返回

string

更新的 URL 字符串

setURLParameter(string, string, undefined | string)

设置 URL 参数名称和值。 如果 URL 参数中存在名称,旧值将替换为名称键。 如果未提供值,将删除该参数。

function setURLParameter(url: string, name: string, value?: undefined | string)

参数

url

string

源 URL 字符串

name

string

参数名称

value

undefined | string

返回

string

更新的 URL 字符串

truncatedISO8061Date(Date, undefined | false | true)

将日期舍入为秒。

function truncatedISO8061Date(date: Date, withMilliseconds?: undefined | false | true)

参数

date

Date

withMilliseconds

undefined | false | true

返回

string

ISO8061格式的日期字符串,包含或不包含 7 毫秒组件

streamToBuffer(ReadableStream, Buffer, number, number, undefined | string)

将可读流读入缓冲区。 将缓冲区从偏移量填充到末尾。

function streamToBuffer(stream: ReadableStream, buffer: Buffer, offset: number, end: number, encoding?: undefined | string)

参数

stream

ReadableStream

Node.js 可读流

buffer

Buffer

要填充的缓冲区,长度必须 >= 偏移量

offset

number

要填充的缓冲区中的位置(含)

end

number

要填充的缓冲区中的位置(独占)

encoding

undefined | string

返回

Promise<void>