你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
@azure/storage-file package
类
Aborter |
aborter 实例实现 AbortSignal 接口,可以中止 HTTP 请求。
对于现有实例中止程序:
|
AccountSASPermissions |
仅在 NODE.JS RUNTIME 中可用。 这是一个帮助程序类,用于构造表示 AccountSAS 授予的权限的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予该操作的权限。 设置所有值后,应使用 toString 进行序列化,并将其设置为对象上 <xref:IAccountSASSignatureValues> 的权限字段。 可以在没有此类的情况下构造权限字符串,但权限的顺序是特定的,此类保证正确性。 |
AccountSASResourceTypes |
仅在 NODE.JS RUNTIME 中可用。 这是一个帮助程序类,用于构造表示 AccountSAS 可访问的资源的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予对该资源类型的访问权限。 设置所有值后,应使用 toString 对此进行序列化,并将其设置为对象上的 <xref:IAccountSASSignatureValues> 资源字段。 可以在没有此类的情况下构造资源字符串,但资源的顺序是特殊的,此类保证正确性。 |
AccountSASServices |
仅在 NODE.JS RUNTIME 中可用。 这是一个帮助程序类,用于构造表示 AccountSAS 可访问的服务的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予对该服务的访问权限。 设置所有值后,应使用 toString 进行序列化,并将其设置为 对象上的 <xref:IAccountSASSignatureValues> 服务字段。 可以在没有此类的情况下构造服务字符串,但服务的顺序是特殊的,此类保证正确性。 |
BrowserPolicyFactory |
BrowserPolicyFactory 是一个工厂类,可帮助生成 BrowserPolicy 对象。 |
DirectoryURL |
DirectoryURL 表示 Azure 存储目录的 URL,可用于操作其文件和目录。 |
FileSASPermissions |
仅在 NODE.JS RUNTIME 中可用。 这是一个帮助程序类,用于构造表示 ServiceSAS 授予对文件的权限的字符串。 将值设置为 true 意味着使用这些权限的任何 SAS 都将授予该操作的权限。 设置所有值后,应使用 toString 对此进行序列化,并将其设置为对象上 <xref:IFileSASSignatureValues> 的权限字段。 可以在没有此类的情况下构造权限字符串,但权限的顺序是特定的,此类可以保证正确性。 |
FileSystemAttributes |
这是一个帮助程序类,用于构造表示文件或目录的 NTFS 属性的字符串。 |
FileURL |
FileURL 表示 Azure 存储文件的 URL。 |
KeepAlivePolicyFactory |
KeepAlivePolicyFactory 是一个工厂类,可帮助生成 KeepAlivePolicy 对象。 |
LoggingPolicyFactory |
LoggingPolicyFactory 是一个工厂类,可帮助生成 LoggingPolicy 对象。 |
Pipeline |
包含 HTTP 请求策略的 Pipeline 类。 可以通过调用 StorageURL.newPipeline () 来创建默认管道。 或者,可以通过 Pipeline 的构造函数使用自己的策略创建管道。 在实现自定义管道之前,请参阅 StorageURL.newPipeline () 并提供的策略作为参考。 |
RetryPolicyFactory |
RetryPolicyFactory 是一个工厂类,可帮助生成 RetryPolicy 对象。 |
SASQueryParameters |
表示构成 Azure 存储 SAS 查询参数的组件。 此类型不是由用户直接构造的;它仅由 和 <xref:IFileSASSignatureValues> 类型生成<xref:IAccountSASSignatureValues>。 生成后,可以将其编码为 {@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 提供用于创建 AnonymousCredentialPolicy 对象的 credentialPolicyCreator 成员。 AnonymousCredentialPolicy 与读取公共资源的 HTTP (S) 请求一起使用,或用于共享访问签名 (SAS) 。 |
Credential |
Credential 是 Azure 存储 HTTP 请求签名的抽象类。 此类将托管一个生成 CredentialPolicy 的 credentialPolicyCreator 工厂。 |
SharedKeyCredential |
仅在 NODE.JS RUNTIME 中可用。 用于 Azure 存储服务的帐户密钥授权的 SharedKeyCredential。 |
Directory |
表示目录的类。 |
File |
表示文件的类。 |
Service |
表示服务的类。 |
Share |
表示 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 RUNTIME 中可用。 当内部 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 |
包含 abortCopy 操作的响应数据。 |
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”、“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 RUNTIME 中可用。 生成一个 <xref:SASQueryParameters> 对象,其中包含发出实际 REST 请求所需的所有 SAS 查询参数。 |
generate |
仅在 NODE.JS RUNTIME 中可用。 创建 SASQueryParameters 的实例。 仅接受创建 SAS 所需的设置。 对于可选设置,请直接设置相应的属性,例如权限、startTime 和标识符。 警告:如果未提供标识符,则需要权限和 expiryTime。 如果首先使用此构造函数,则必须手动为 identifier 或 expiryTime & 权限赋值。 |
ip |
生成 IPRange 格式字符串。 例如:“8.8.8.8”或“1.1.1-255.255.255.255” |
range |
生成范围字符串。 例如:“bytes=255-”或“bytes=0-511” |
upload |
仅在浏览器中可用。 将浏览器 Blob/文件/ArrayBuffer/ArrayBufferView 对象上传到 Azure 文件。 |
download |
仅在 NODE.JS RUNTIME 中可用。 将 Azure 文件并行下载到缓冲区。 偏移量和计数是可选的,两者都传递 0 以下载整个文件。 |
upload |
仅在 NODE.JS RUNTIME 中可用。 将本地文件上传到 Azure 文件。 |
upload |
仅在 NODE.JS RUNTIME 中可用。
将 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 字符串可能已进行 URL 编码或未编码。 但在发送到 Azure 存储服务器之前,必须对 URL 进行编码。 但是,SDK 很难猜测 URL 字符串是否已编码。 我们有 2 个潜在策略,并为 XXXURL 构造函数选择了两个策略。 策略一:假设客户 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 名称。 方法中 containerName、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 RUNTIME 中可用。 生成一个 <xref:SASQueryParameters> 对象,其中包含发出实际 REST 请求所需的所有 SAS 查询参数。
function generateAccountSASQueryParameters(accountSASSignatureValues: IAccountSASSignatureValues, sharedKeyCredential: SharedKeyCredential)
参数
- accountSASSignatureValues
- IAccountSASSignatureValues
- sharedKeyCredential
- SharedKeyCredential
返回
generateFileSASQueryParameters(IFileSASSignatureValues, SharedKeyCredential)
仅在 NODE.JS RUNTIME 中可用。 创建 SASQueryParameters 的实例。
仅接受创建 SAS 所需的设置。 对于可选设置,请直接设置相应的属性,例如权限、startTime 和标识符。
警告:如果未提供标识符,则需要权限和 expiryTime。 如果首先使用此构造函数,则必须手动为 identifier 或 expiryTime & 权限赋值。
function generateFileSASQueryParameters(fileSASSignatureValues: IFileSASSignatureValues, sharedKeyCredential: SharedKeyCredential)
参数
- fileSASSignatureValues
- IFileSASSignatureValues
- sharedKeyCredential
- SharedKeyCredential
返回
ipRangeToString(IIPRange)
生成 IPRange 格式字符串。 例如:“8.8.8.8”或“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/文件/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 RUNTIME 中可用。 将 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 RUNTIME 中可用。 将本地文件上传到 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 RUNTIME 中可用。
将 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 字符串可能已进行 URL 编码或未编码。 但在发送到 Azure 存储服务器之前,必须对 URL 进行编码。 但是,SDK 很难猜测 URL 字符串是否已编码。 我们有 2 个潜在策略,并为 XXXURL 构造函数选择了两个策略。
策略一:假设客户 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 名称。
方法中 containerName、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>