@azure/storage-file package
类
Aborter |
中止实例实现 AbortSignal 接口,可以中止 HTTP 请求。
对于现有实例中止程序:
|
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 和浏览器运行时之间的差异,包括:
|
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 性能改进提示:
|
RetriableReadableStream |
仅在NODE.JS运行时中可用。 当内部 ReadableStream 意外结束时,Node.js ReadableStream 将在内部重试。 |
接口
类型别名
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 类型。 |
函数
generate |
仅在NODE.JS运行时中可用。 生成一个 <xref:SASQueryParameters> 对象,该对象包含发出实际 REST 请求所需的所有 SAS 查询参数。 |
generate |
仅在NODE.JS运行时中可用。 创建 SASQueryParameters 的实例。 仅接受创建 SAS 所需的设置。 对于可选设置,请直接设置相应的属性,例如权限、startTime 和标识符。 警告:如果未提供标识符,则需要权限和 expiryTime。 如果最初使用此构造函数,则必须手动为标识符或 expiryTime & 权限赋值。 |
ip |
生成 IPRange 格式字符串。 例如:“8.8.8.8”或“1.1.1.1-255.255.255.255” |
range |
生成范围字符串。 例如:“bytes=255-”或“bytes=0-511” |
upload |
仅在浏览器中可用。 将浏览器 Blob/File/ArrayBuffer/ArrayBufferView 对象上传到 Azure 文件。 |
download |
仅在NODE.JS运行时中可用。 将 Azure 文件并行下载到缓冲区。 偏移量和计数是可选的,为两者传递 0 以下载整个文件。 |
upload |
仅在NODE.JS运行时中可用。 将本地文件上传到 Azure 文件。 |
upload |
仅在NODE.JS运行时中可用。
将 Node.js 可读流上传到 Azure 文件中。
此方法将尝试创建 Azure,然后开始按区块上传区块。
区块的大小由 性能改进提示:
|
file |
|
file |
|
file |
|
validate |
|
validate |
|
validate |
|
New |
用于生成 RetryPolicy 工厂的工厂方法。 |
blob |
将浏览器 Blob 对象转换为 ArrayBuffer。 |
append |
将字符串追加到 URL 路径。 当 URL 路径以“/”结尾时,将删除字符串前面的重复的“/”。 |
base64decode(string) | Base64 解码。 |
base64encode(string) | Base64 编码。 |
delay(number, Abort |
延迟指定的时间间隔。 |
escape |
必须为 Blob 或文件等存储服务正确转义保留 URL 字符。 JSv10 SDK 的 URL 编码和转义策略当客户将 URL 字符串传递到 XXXURL 类构造函数中时,URL 字符串可能已编码或不编码。 但在发送到 Azure 存储服务器之前,必须对 URL 进行编码。 但是,SDK 很难猜测 URL 字符串是否已编码。 我们有 2 个潜在策略,并为 XXXURL 构造函数选择策略 2。 策略一:假设客户 URL 字符串未编码,并且始终在 SDK 中对 URL 字符串进行编码。这是旧版 V2 SDK 的作用,简单且适用于大多数情况。
但是,此策略将无法创建名称中包含“?” 的 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 字符串未编码,则 URL 字符串中不应有“%”,否则 URL 不是有效的 URL。 如果客户需要在 blob 名称中创建包含“%”的 blob,请使用“%25”%“的”%”。 就像上面的第三个示例一样。 以下 URL 字符串无效:
另一个特殊字符是“?”,使用“%2F”来表示 URL 字符串中带有“?”的 blob 名称。 容器名称、blobName 或其他特定 XXXName 参数的策略,例如
|
get |
按名称获取 URL 参数。 |
get |
从 URL 字符串获取 URL 路径。 |
get |
从 URL 字符串获取 URL 查询键值对。 |
pad |
String.prototype.padStart() |
set |
设置 URL 主机。 |
set |
设置 URL 参数名称和值。 如果 URL 参数中存在名称,旧值将替换为名称键。 如果未提供值,将删除该参数。 |
truncatedISO8061Date(Date, undefined | false | true) | 将日期舍入为秒。 |
stream |
将可读流读入缓冲区。 将缓冲区从偏移量填充到末尾。 |
函数详细信息
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
- options
- IUploadToAzureFileOptions
返回
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
- options
- IDownloadFromAzureFileOptions
返回
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
- options
- IUploadToAzureFileOptions
返回
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
最大缓冲区将在上传期间分配,与最大上传并发的正相关
- options
- IUploadStreamToAzureFileOptions
返回
Promise<void>
fileAttributesToString(FileSystemAttributes | FileAttributesPreserveType)
function fileAttributesToString(fileAttributes: FileSystemAttributes | FileAttributesPreserveType)
参数
- fileAttributes
返回
string
fileCreationTimeToString(Date | TimeNowType | TimePreserveType)
function fileCreationTimeToString(time: Date | TimeNowType | TimePreserveType)
参数
- time
-
Date | TimeNowType | TimePreserveType
返回
string
fileLastWriteTimeToString(Date | TimeNowType | TimePreserveType)
function fileLastWriteTimeToString(time: Date | TimeNowType | TimePreserveType)
参数
- 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>