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

BlockBlobClient class

BlockBlobClient 定义一组适用于块 blob 的作。

扩展

构造函数

BlockBlobClient(string, PipelineLike)

创建 BlockBlobClient 的实例。 此方法接受指向块 Blob 的编码 URL 或非编码 URL。 编码的 URL 字符串不会转义两次,只会转义 URL 路径中的特殊字符。 如果 Blob 名称包含? 或 %,blob 名称必须在 URL 中编码。

BlockBlobClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)

创建 BlockBlobClient 的实例。 此方法接受指向块 Blob 的编码 URL 或非编码 URL。 编码的 URL 字符串不会转义两次,只会转义 URL 路径中的特殊字符。 如果 Blob 名称包含? 或 %,blob 名称必须在 URL 中编码。

BlockBlobClient(string, string, string, StoragePipelineOptions)

创建 BlockBlobClient 的实例。

属性

accountName
containerName

Blob 与之关联的存储容器的名称。

credential

例如 AnonymousCredential、StorageSharedKeyCredential 或任何来自 @azure/identity 包的凭据,用于对服务的请求进行身份验证。 还可以提供实现 TokenCredential 接口的对象。 如果未指定,则使用 AnonymousCredential。

name

Blob 的名称。

url

编码的 URL 字符串值。

方法

abortCopyFromURL(string, BlobAbortCopyFromURLOptions)

中止挂起的异步复制 Blob作,并将目标 Blob 保留长度为零和完整元数据。 版本 2012-02-12 及更新。

beginCopyFromURL(string, BlobBeginCopyFromURLOptions)

将 Blob 异步复制到存储帐户中的目标。 此方法返回一个长时间运行的作轮询器,该轮询程序允许无限期等待,直到复制完成。 还可以通过在投票器上调用 cancelOperation 来取消副本,然后再取消该副本。 请注意,如果作在第一个请求中完成,并且尝试取消已完成的副本将导致引发错误,则不会调用 onProgress 回调。 在版本 2012-02-12 及更高版本中,复制 Blob作的源可以是任何 Azure 存储帐户中的已提交 Blob。 从版本 2015-02-21 开始,复制 Blob作的源可以是任何 Azure 存储帐户中的 Azure 文件。 只有 2012 年 6 月 7 日或之后创建的存储帐户才允许复制 Blob作从另一个存储帐户复制。

commitBlockList(string[], BlockBlobCommitBlockListOptions)

通过指定构成 Blob 的块 ID 列表来写入 Blob。 为了作为 Blob 的一部分写入,块必须在之前 <xref:stageBlock>作中成功写入服务器。 可以通过仅上传已更改的块,然后将新的和现有块提交到一起来调用 <xref:commitBlockList> 来更新 blob。 块列表中未指定并永久删除的任何块。

createSnapshot(BlobCreateSnapshotOptions)

创建 Blob 的只读快照。

delete(BlobDeleteOptions)

标记要删除的指定 Blob 或快照。 稍后在垃圾回收期间删除该 Blob。 请注意,若要删除 Blob,必须删除其所有快照。 可以使用“删除 Blob”作同时删除两者。

deleteIfExists(BlobDeleteOptions)

标记指定的 blob 或快照以将其删除(如果存在)。 稍后在垃圾回收期间删除该 Blob。 请注意,若要删除 Blob,必须删除其所有快照。 可以使用“删除 Blob”作同时删除两者。

deleteImmutabilityPolicy(BlobDeleteImmutabilityPolicyOptions)

删除 Blob 上的不可变性策略。

download(number, number, BlobDownloadOptions)

从系统读取或下载 blob,包括其元数据和属性。 还可以调用 Get Blob 来读取快照。

  • 在 Node.js中,数据在可读流 readableStreamBody 中返回
  • 在浏览器中,数据在 promise blobBody 中返回
downloadToBuffer(Buffer, number, number, BlobDownloadToBufferOptions)

仅在NODE.JS运行时中可用。 将 Azure Blob 并行下载到缓冲区。 偏移量和计数是可选的,如果未提供,则下载整个 Blob。

警告:由于 Node.js/V8 的限制,缓冲区只能支持 32 位系统上最多一千兆字节的文件或 64 位系统上的大约 2 GB 文件。 对于大于此大小的 Blob,请考虑 <xref:downloadToFile>。

downloadToBuffer(number, number, BlobDownloadToBufferOptions)

仅在NODE.JS运行时中可用。 将 Azure Blob 并行下载到缓冲区。 偏移量和计数是可选的,如果未提供,则下载整个 Blob。

警告:由于 Node.js/V8 的限制,缓冲区只能支持 32 位系统上最多一千兆字节的文件或 64 位系统上的大约 2 GB 文件。 对于大于此大小的 Blob,请考虑 <xref:downloadToFile>。

downloadToFile(string, number, number, BlobDownloadOptions)

仅在NODE.JS运行时中可用。 将 Azure Blob 下载到本地文件。 如果给定的文件路径已退出,则失败。 偏移量和计数是可选的,分别传递 0 和未定义以下载整个 Blob。

exists(BlobExistsOptions)

如果此客户端表示的 Azure Blob 资源存在,则返回 true;否则为 false。 注意:请谨慎使用此函数,因为现有 Blob 可能被其他客户端或应用程序删除。 反之亦然,此函数完成后,其他客户端或应用程序可能会添加新的 Blob。

generateSasUrl(BlobGenerateSasUrlOptions)

仅适用于使用共享密钥凭据构造的 BlobClient。 基于传入的客户端属性和参数生成 Blob 服务共享访问签名 (SAS) URI。 SAS 由客户端的共享密钥凭据签名。

getAppendBlobClient()

创建 AppendBlobClient 对象。

getBlobLeaseClient(string)

获取管理 blob 上的租约的 <xref:BlobLeaseClient>。

getBlockBlobClient()

创建 BlockBlobClient 对象。

getBlockList(BlockListType, BlockBlobGetBlockListOptions)

返回已使用指定的块列表筛选器作为块 Blob 的一部分上传的块列表。

getPageBlobClient()

创建 PageBlobClient 对象。

getProperties(BlobGetPropertiesOptions)

返回 Blob 的所有用户定义的元数据、标准 HTTP 属性和系统属性。 它不返回 Blob 的内容。

getTags(BlobGetTagsOptions)

获取与基础 Blob 关联的标记。

query(string, BlockBlobQueryOptions)

仅在NODE.JS运行时中可用。 快速查询 JSON 或 CSV 格式的 Blob。

示例用法(Node.js):

// Query and convert a blob to a string
const queryBlockBlobResponse = await blockBlobClient.query("select * from BlobStorage");
const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();
console.log("Query blob content:", downloaded);

async function streamToBuffer(readableStream) {
  return new Promise((resolve, reject) => {
    const chunks = [];
    readableStream.on("data", (data) => {
      chunks.push(data instanceof Buffer ? data : Buffer.from(data));
    });
    readableStream.on("end", () => {
      resolve(Buffer.concat(chunks));
    });
    readableStream.on("error", reject);
  });
}
setAccessTier(BlockBlobTier | PremiumPageBlobTier | string, BlobSetTierOptions)

设置 Blob 上的层。 该作允许在高级存储帐户中的页 Blob 和 Blob 存储帐户中的块 Blob 上(仅限本地冗余存储)。 高级页 Blob 层确定 Blob 允许的大小、IOPS 和带宽。 块 Blob 层确定热/冷/存档存储类型。 此作不会更新 Blob 的 ETag。

setHTTPHeaders(BlobHTTPHeaders, BlobSetHTTPHeadersOptions)

设置 Blob 上的系统属性。 如果未提供任何值,或者未为指定的 Blob HTTP 标头提供任何值,则清除不带值的这些 blob HTTP 标头。

setImmutabilityPolicy(BlobImmutabilityPolicy, BlobSetImmutabilityPolicyOptions)

在 Blob 上设置不可变性策略。

setLegalHold(boolean, BlobSetLegalHoldOptions)

设置 Blob 的法律保留。

setMetadata(Metadata, BlobSetMetadataOptions)

将指定 Blob 的用户定义元数据设置为一个或多个名称值对。 如果未提供任何选项,或者参数中未定义任何元数据,将删除 blob 元数据。

setTags(Tags, BlobSetTagsOptions)

设置基础 Blob 上的标记。 Blob 最多可以有 10 个标记。 标记键必须介于 1 到 128 个字符之间。 标记值必须介于 0 到 256 个字符之间。 有效的标记键和值字符包括小写字母和大写字母、数字(0-9)、空格(')、加('+')、减号('-')、句点('.')、正斜杠('/')、冒号(':')、等号('=')和下划线('_')。

stageBlock(string, HttpRequestBody, number, BlockBlobStageBlockOptions)

将指定的块上传到块 blob 的“暂存区域”,以便稍后通过调用 commitBlockList 提交。

stageBlockFromURL(string, string, number, number, BlockBlobStageBlockFromURLOptions)

阶段阻止 URL作创建一个新块,作为从 URL 读取内容的 Blob 的一部分提交。 此 API 从版本 2018-03-28 开始提供。

syncCopyFromURL(string, BlobSyncCopyFromURLOptions)

同步的“从 URL 复制”作将 Blob 或 Internet 资源复制到新的 Blob。 在复制完成之前,它不会返回响应。

syncUploadFromURL(string, BlockBlobSyncUploadFromURLOptions)

创建一个新的块 Blob,其中从给定 URL 读取 Blob 的内容。 从 2020-04-08 版本开始,支持此 API。 URL 中的 Put Blob 不支持部分更新;现有 Blob 的内容将被新 Blob 的内容覆盖。 若要使用源 URL 对块 blob 的内容执行部分更新,请使用 <xref:stageBlockFromURL> 和 <xref:commitBlockList>。

undelete(BlobUndeleteOptions)

还原软删除 Blob 的内容和元数据以及任何关联的软删除快照。 仅在版本 2017-07-29 或更高版本上支持取消删除 Blob。

upload(HttpRequestBody, number, BlockBlobUploadOptions)

创建新的块 blob,或更新现有块 Blob 的内容。 更新现有块 Blob 会覆盖 Blob 上的任何现有元数据。 不支持部分更新;现有 Blob 的内容将被新内容覆盖。 若要执行块 blob 的部分更新,请使用 <xref:stageBlock> 和 <xref:commitBlockList>。 这是一种非并行上传方法,请使用 <xref:uploadFile>、<xref:uploadStream> 或 <xref:uploadBrowserData>,以提高并发上传的性能。

uploadBrowserData(Blob | ArrayBuffer | ArrayBufferView, BlockBlobParallelUploadOptions)

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

当缓冲区长度小于或等于 256MB 时,此方法将使用 1 个上传调用来完成上传。 否则,此方法将调用 <xref:stageBlock> 来上传块,最后调用 <xref:commitBlockList> 提交块列表。

要设置的常见 <xref:BlockBlobParallelUploadOptions.blobHTTPHeaders> 选项是 blobContentType,使浏览器能够基于文件类型提供功能。

uploadData(Buffer | Blob | ArrayBuffer | ArrayBufferView, BlockBlobParallelUploadOptions)

将 Buffer(Node.js)/Blob(浏览器)/ArrayBuffer/ArrayBufferView 对象上传到 BlockBlob。 当数据长度不超过指定 <xref:BlockBlobParallelUploadOptions.maxSingleShotSize>(默认值为 <xref:BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES>),此方法将使用 1 个 <xref:upload> 调用来完成上传。 否则,此方法将调用 <xref:stageBlock> 来上传块,最后调用 <xref:commitBlockList> 提交块列表。

要设置的常见 <xref:BlockBlobParallelUploadOptions.blobHTTPHeaders> 选项是 blobContentType,使浏览器能够基于文件类型提供功能。

uploadFile(string, BlockBlobParallelUploadOptions)

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

当文件大小小于或等于 256MB 时,此方法将使用 1 个上传调用来完成上传。 否则,此方法将调用 stageBlock 以上传块,最后调用 commitBlockList 以提交块列表。

uploadStream(Readable, number, number, BlockBlobUploadStreamOptions)

仅在NODE.JS运行时中可用。 将 Node.js 可读流上传到块 blob 中。

性能改进提示:

  • 输入流 highWaterMark 最好使用 bufferSize 参数设置相同的值,这将避免 Buffer.concat()作。
withSnapshot(string)

创建与源相同的新 BlockBlobClient 对象,但具有指定的快照时间戳。 提供“”将删除快照,并将 URL 返回到基本 Blob。

withVersion(string)

创建一个新的 BlobClient 对象,该对象指向此 Blob 的版本。 提供“”将删除 versionId 并将客户端返回到基本 Blob。

构造函数详细信息

BlockBlobClient(string, PipelineLike)

创建 BlockBlobClient 的实例。 此方法接受指向块 Blob 的编码 URL 或非编码 URL。 编码的 URL 字符串不会转义两次,只会转义 URL 路径中的特殊字符。 如果 Blob 名称包含? 或 %,blob 名称必须在 URL 中编码。

new BlockBlobClient(url: string, pipeline: PipelineLike)

参数

url

string

指向 Azure 存储块 blob 的 URL 字符串,例如“https://myaccount.blob.core.windows.net/mycontainer/blockblob"。 如果使用 AnonymousCredential(如“https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString"),则可以追加 SAS。 此方法接受指向 Blob 的编码 URL 或非编码 URL。 编码的 URL 字符串不会转义两次,只会转义 URL 路径中的特殊字符。 但是,如果 Blob 名称包含 ? 或 %,blob 名称必须在 URL 中编码。 例如名为“my?blob%”的 blob,URL 应为“https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25"。

pipeline
PipelineLike

调用 newPipeline()以创建默认管道,或提供自定义管道。

BlockBlobClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)

创建 BlockBlobClient 的实例。 此方法接受指向块 Blob 的编码 URL 或非编码 URL。 编码的 URL 字符串不会转义两次,只会转义 URL 路径中的特殊字符。 如果 Blob 名称包含? 或 %,blob 名称必须在 URL 中编码。

new BlockBlobClient(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)

参数

url

string

指向 Azure 存储块 blob 的 URL 字符串,例如“https://myaccount.blob.core.windows.net/mycontainer/blockblob"。 如果使用 AnonymousCredential(如“https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString"),则可以追加 SAS。 此方法接受指向 Blob 的编码 URL 或非编码 URL。 编码的 URL 字符串不会转义两次,只会转义 URL 路径中的特殊字符。 但是,如果 Blob 名称包含 ? 或 %,blob 名称必须在 URL 中编码。 例如名为“my?blob%”的 blob,URL 应为“https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25"。

credential

StorageSharedKeyCredential | AnonymousCredential | TokenCredential

例如 AnonymousCredential、StorageSharedKeyCredential 或任何来自 @azure/identity 包的凭据,用于对服务的请求进行身份验证。 还可以提供实现 TokenCredential 接口的对象。 如果未指定,则使用 AnonymousCredential。

options
StoragePipelineOptions

自选。 用于配置 HTTP 管道的选项。

BlockBlobClient(string, string, string, StoragePipelineOptions)

创建 BlockBlobClient 的实例。

new BlockBlobClient(connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)

参数

connectionString

string

帐户连接字符串或 Azure 存储帐户的 SAS 连接字符串。 [ 注意 - 帐户连接字符串只能在NODE.JS运行时使用。 ] 帐户连接字符串示例 - DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net SAS 连接字符串示例 - BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString

containerName

string

容器名称。

blobName

string

Blob 名称。

options
StoragePipelineOptions

自选。 用于配置 HTTP 管道的选项。

属性详细信息

accountName

accountName: string

属性值

string

containerName

Blob 与之关联的存储容器的名称。

string containerName

属性值

string

credential

例如 AnonymousCredential、StorageSharedKeyCredential 或任何来自 @azure/identity 包的凭据,用于对服务的请求进行身份验证。 还可以提供实现 TokenCredential 接口的对象。 如果未指定,则使用 AnonymousCredential。

credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential

属性值

name

Blob 的名称。

string name

属性值

string

url

编码的 URL 字符串值。

url: string

属性值

string

方法详细信息

abortCopyFromURL(string, BlobAbortCopyFromURLOptions)

中止挂起的异步复制 Blob作,并将目标 Blob 保留长度为零和完整元数据。 版本 2012-02-12 及更新。

function abortCopyFromURL(copyId: string, options?: BlobAbortCopyFromURLOptions)

参数

copyId

string

“从 URL 复制”作的 ID。

options
BlobAbortCopyFromURLOptions

Blob 中止 URL作的可选选项。

返回

beginCopyFromURL(string, BlobBeginCopyFromURLOptions)

将 Blob 异步复制到存储帐户中的目标。 此方法返回一个长时间运行的作轮询器,该轮询程序允许无限期等待,直到复制完成。 还可以通过在投票器上调用 cancelOperation 来取消副本,然后再取消该副本。 请注意,如果作在第一个请求中完成,并且尝试取消已完成的副本将导致引发错误,则不会调用 onProgress 回调。 在版本 2012-02-12 及更高版本中,复制 Blob作的源可以是任何 Azure 存储帐户中的已提交 Blob。 从版本 2015-02-21 开始,复制 Blob作的源可以是任何 Azure 存储帐户中的 Azure 文件。 只有 2012 年 6 月 7 日或之后创建的存储帐户才允许复制 Blob作从另一个存储帐户复制。

function beginCopyFromURL(copySource: string, options?: BlobBeginCopyFromURLOptions)

参数

copySource

string

指向源 Azure Blob/文件的 URL。

options
BlobBeginCopyFromURLOptions

Blob“从 URL 开始复制”作的可选选项。

返回

Promise<PollerLike<PollOperationState<BlobBeginCopyFromURLResponse>, BlobBeginCopyFromURLResponse>>

commitBlockList(string[], BlockBlobCommitBlockListOptions)

通过指定构成 Blob 的块 ID 列表来写入 Blob。 为了作为 Blob 的一部分写入,块必须在之前 <xref:stageBlock>作中成功写入服务器。 可以通过仅上传已更改的块,然后将新的和现有块提交到一起来调用 <xref:commitBlockList> 来更新 blob。 块列表中未指定并永久删除的任何块。

function commitBlockList(blocks: string[], options?: BlockBlobCommitBlockListOptions)

参数

blocks

string[]

base64 编码的 64 字节值的数组

options
BlockBlobCommitBlockListOptions

块 Blob 提交块列表作的选项。

返回

块 Blob 提交块列表作的响应数据。

createSnapshot(BlobCreateSnapshotOptions)

创建 Blob 的只读快照。

function createSnapshot(options?: BlobCreateSnapshotOptions)

参数

options
BlobCreateSnapshotOptions

Blob 创建快照作的可选选项。

返回

delete(BlobDeleteOptions)

标记要删除的指定 Blob 或快照。 稍后在垃圾回收期间删除该 Blob。 请注意,若要删除 Blob,必须删除其所有快照。 可以使用“删除 Blob”作同时删除两者。

function delete(options?: BlobDeleteOptions)

参数

options
BlobDeleteOptions

Blob 删除作的可选选项。

返回

deleteIfExists(BlobDeleteOptions)

标记指定的 blob 或快照以将其删除(如果存在)。 稍后在垃圾回收期间删除该 Blob。 请注意,若要删除 Blob,必须删除其所有快照。 可以使用“删除 Blob”作同时删除两者。

function deleteIfExists(options?: BlobDeleteOptions)

参数

options
BlobDeleteOptions

Blob 删除作的可选选项。

返回

deleteImmutabilityPolicy(BlobDeleteImmutabilityPolicyOptions)

删除 Blob 上的不可变性策略。

function deleteImmutabilityPolicy(options?: BlobDeleteImmutabilityPolicyOptions)

参数

options
BlobDeleteImmutabilityPolicyOptions

用于删除 Blob 上不可变策略的可选选项。

返回

download(number, number, BlobDownloadOptions)

从系统读取或下载 blob,包括其元数据和属性。 还可以调用 Get Blob 来读取快照。

  • 在 Node.js中,数据在可读流 readableStreamBody 中返回
  • 在浏览器中,数据在 promise blobBody 中返回
function download(offset?: number, count?: number, options?: BlobDownloadOptions)

参数

offset

number

要下载的 Blob 的位置,大于或等于 0

count

number

要下载的数据量大于 0。 在未定义时将下载到末尾

options
BlobDownloadOptions

Blob 下载作的可选选项。

示例用法(Node.js):

// Download and convert a blob to a string
const downloadBlockBlobResponse = await blobClient.download();
const downloaded = await streamToBuffer(downloadBlockBlobResponse.readableStreamBody);
console.log("Downloaded blob content:", downloaded.toString());

async function streamToBuffer(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on("data", (data) => {
chunks.push(data instanceof Buffer ? data : Buffer.from(data));
});
readableStream.on("end", () => {
resolve(Buffer.concat(chunks));
});
readableStream.on("error", reject);
});
}

示例用法(浏览器):

// Download and convert a blob to a string
const downloadBlockBlobResponse = await blobClient.download();
const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);
console.log(
  "Downloaded blob content",
  downloaded
);

async function blobToString(blob: Blob): Promise<string> {
  const fileReader = new FileReader();
  return new Promise<string>((resolve, reject) => {
    fileReader.onloadend = (ev: any) => {
      resolve(ev.target!.result);
    };
    fileReader.onerror = reject;
    fileReader.readAsText(blob);
  });
}

返回

downloadToBuffer(Buffer, number, number, BlobDownloadToBufferOptions)

仅在NODE.JS运行时中可用。 将 Azure Blob 并行下载到缓冲区。 偏移量和计数是可选的,如果未提供,则下载整个 Blob。

警告:由于 Node.js/V8 的限制,缓冲区只能支持 32 位系统上最多一千兆字节的文件或 64 位系统上的大约 2 GB 文件。 对于大于此大小的 Blob,请考虑 <xref:downloadToFile>。

function downloadToBuffer(buffer: Buffer, offset?: number, count?: number, options?: BlobDownloadToBufferOptions)

参数

buffer

Buffer

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

offset

number

要下载的块 Blob 的位置(以字节为单位)

count

number

要下载的数据量(以字节为单位)。 传递未定义时,将下载到末尾

options
BlobDownloadToBufferOptions

BlobDownloadToBufferOptions

返回

Promise<Buffer>

downloadToBuffer(number, number, BlobDownloadToBufferOptions)

仅在NODE.JS运行时中可用。 将 Azure Blob 并行下载到缓冲区。 偏移量和计数是可选的,如果未提供,则下载整个 Blob。

警告:由于 Node.js/V8 的限制,缓冲区只能支持 32 位系统上最多一千兆字节的文件或 64 位系统上的大约 2 GB 文件。 对于大于此大小的 Blob,请考虑 <xref:downloadToFile>。

function downloadToBuffer(offset?: number, count?: number, options?: BlobDownloadToBufferOptions)

参数

offset

number

要下载的块 Blob 的位置(以字节为单位)

count

number

要下载的数据量(以字节为单位)。 传递未定义时,将下载到末尾

options
BlobDownloadToBufferOptions

BlobDownloadToBufferOptions

返回

Promise<Buffer>

downloadToFile(string, number, number, BlobDownloadOptions)

仅在NODE.JS运行时中可用。 将 Azure Blob 下载到本地文件。 如果给定的文件路径已退出,则失败。 偏移量和计数是可选的,分别传递 0 和未定义以下载整个 Blob。

function downloadToFile(filePath: string, offset?: number, count?: number, options?: BlobDownloadOptions)

参数

filePath

string

offset

number

要下载的块 Blob 的位置。

count

number

要下载的数据量。 传递未定义时,将下载到末尾。

options
BlobDownloadOptions

Blob 下载选项。

返回

Blob 下载作的响应数据,但已将 readableStreamBody 设置为未定义,因为它的内容已读取并写入到指定路径的本地文件中。

exists(BlobExistsOptions)

如果此客户端表示的 Azure Blob 资源存在,则返回 true;否则为 false。 注意:请谨慎使用此函数,因为现有 Blob 可能被其他客户端或应用程序删除。 反之亦然,此函数完成后,其他客户端或应用程序可能会添加新的 Blob。

function exists(options?: BlobExistsOptions)

参数

options
BlobExistsOptions

“存在”作的选项。

返回

Promise<boolean>

generateSasUrl(BlobGenerateSasUrlOptions)

仅适用于使用共享密钥凭据构造的 BlobClient。 基于传入的客户端属性和参数生成 Blob 服务共享访问签名 (SAS) URI。 SAS 由客户端的共享密钥凭据签名。

function generateSasUrl(options: BlobGenerateSasUrlOptions)

参数

options
BlobGenerateSasUrlOptions

可选参数。

返回

Promise<string>

由此客户端表示的资源的 URI 组成的 SAS URI,后跟生成的 SAS 令牌。

getAppendBlobClient()

创建 AppendBlobClient 对象。

function getAppendBlobClient()

返回

getBlobLeaseClient(string)

获取管理 blob 上的租约的 <xref:BlobLeaseClient>。

function getBlobLeaseClient(proposeLeaseId?: string)

参数

proposeLeaseId

string

初始建议的租约 ID。

返回

一个新的 BlobLeaseClient 对象,用于管理 Blob 上的租约。

getBlockBlobClient()

创建 BlockBlobClient 对象。

function getBlockBlobClient()

返回

getBlockList(BlockListType, BlockBlobGetBlockListOptions)

返回已使用指定的块列表筛选器作为块 Blob 的一部分上传的块列表。

function getBlockList(listType: BlockListType, options?: BlockBlobGetBlockListOptions)

参数

listType
BlockListType

指定是返回已提交的块列表、未提交的块列表还是同时返回这两个列表。

options
BlockBlobGetBlockListOptions

块 Blob 获取块列表作的选项。

返回

块 Blob 获取块列表作的响应数据。

getPageBlobClient()

创建 PageBlobClient 对象。

function getPageBlobClient()

返回

getProperties(BlobGetPropertiesOptions)

返回 Blob 的所有用户定义的元数据、标准 HTTP 属性和系统属性。 它不返回 Blob 的内容。

function getProperties(options?: BlobGetPropertiesOptions)

参数

options
BlobGetPropertiesOptions

获取属性作的可选选项。

返回

getTags(BlobGetTagsOptions)

获取与基础 Blob 关联的标记。

function getTags(options?: BlobGetTagsOptions)

参数

返回

query(string, BlockBlobQueryOptions)

仅在NODE.JS运行时中可用。 快速查询 JSON 或 CSV 格式的 Blob。

示例用法(Node.js):

// Query and convert a blob to a string
const queryBlockBlobResponse = await blockBlobClient.query("select * from BlobStorage");
const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();
console.log("Query blob content:", downloaded);

async function streamToBuffer(readableStream) {
  return new Promise((resolve, reject) => {
    const chunks = [];
    readableStream.on("data", (data) => {
      chunks.push(data instanceof Buffer ? data : Buffer.from(data));
    });
    readableStream.on("end", () => {
      resolve(Buffer.concat(chunks));
    });
    readableStream.on("error", reject);
  });
}
function query(query: string, options?: BlockBlobQueryOptions)

参数

query

string

返回

setAccessTier(BlockBlobTier | PremiumPageBlobTier | string, BlobSetTierOptions)

设置 Blob 上的层。 该作允许在高级存储帐户中的页 Blob 和 Blob 存储帐户中的块 Blob 上(仅限本地冗余存储)。 高级页 Blob 层确定 Blob 允许的大小、IOPS 和带宽。 块 Blob 层确定热/冷/存档存储类型。 此作不会更新 Blob 的 ETag。

function setAccessTier(tier: BlockBlobTier | PremiumPageBlobTier | string, options?: BlobSetTierOptions)

参数

tier

BlockBlobTier | PremiumPageBlobTier | string

要对 Blob 设置的层。 有效值为热、冷或存档。

options
BlobSetTierOptions

Blob 设置层作的可选选项。

返回

setHTTPHeaders(BlobHTTPHeaders, BlobSetHTTPHeadersOptions)

设置 Blob 上的系统属性。 如果未提供任何值,或者未为指定的 Blob HTTP 标头提供任何值,则清除不带值的这些 blob HTTP 标头。

function setHTTPHeaders(blobHTTPHeaders?: BlobHTTPHeaders, options?: BlobSetHTTPHeadersOptions)

参数

blobHTTPHeaders
BlobHTTPHeaders

如果未提供任何值,或者未为指定的 Blob HTTP 标头提供任何值,则清除不带值的这些 blob HTTP 标头。 要设置的常见标头是 blobContentType 使浏览器能够基于文件类型提供功能。

options
BlobSetHTTPHeadersOptions

Blob 设置 HTTP 标头作的可选选项。

返回

setImmutabilityPolicy(BlobImmutabilityPolicy, BlobSetImmutabilityPolicyOptions)

在 Blob 上设置不可变性策略。

function setImmutabilityPolicy(immutabilityPolicy: BlobImmutabilityPolicy, options?: BlobSetImmutabilityPolicyOptions)

参数

immutabilityPolicy
BlobImmutabilityPolicy
options
BlobSetImmutabilityPolicyOptions

用于在 Blob 上设置不可变策略的可选选项。

返回

setLegalHold(boolean, BlobSetLegalHoldOptions)

设置 Blob 的法律保留。

function setLegalHold(legalHoldEnabled: boolean, options?: BlobSetLegalHoldOptions)

参数

legalHoldEnabled

boolean

options
BlobSetLegalHoldOptions

用于设置 Blob 法定保留的可选选项。

返回

setMetadata(Metadata, BlobSetMetadataOptions)

将指定 Blob 的用户定义元数据设置为一个或多个名称值对。 如果未提供任何选项,或者参数中未定义任何元数据,将删除 blob 元数据。

function setMetadata(metadata?: Metadata, options?: BlobSetMetadataOptions)

参数

metadata
Metadata

将现有元数据替换为此值。 如果未提供任何值,将删除现有元数据。

options
BlobSetMetadataOptions

用于设置元数据作的可选选项。

返回

setTags(Tags, BlobSetTagsOptions)

设置基础 Blob 上的标记。 Blob 最多可以有 10 个标记。 标记键必须介于 1 到 128 个字符之间。 标记值必须介于 0 到 256 个字符之间。 有效的标记键和值字符包括小写字母和大写字母、数字(0-9)、空格(')、加('+')、减号('-')、句点('.')、正斜杠('/')、冒号(':')、等号('=')和下划线('_')。

function setTags(tags: Tags, options?: BlobSetTagsOptions)

参数

tags
Tags

返回

stageBlock(string, HttpRequestBody, number, BlockBlobStageBlockOptions)

将指定的块上传到块 blob 的“暂存区域”,以便稍后通过调用 commitBlockList 提交。

function stageBlock(blockId: string, body: HttpRequestBody, contentLength: number, options?: BlockBlobStageBlockOptions)

参数

blockId

string

base64 编码的 64 字节值

body

HttpRequestBody

要上传到暂存区域的数据。

contentLength

number

要上传的字节数。

options
BlockBlobStageBlockOptions

块 Blob 阶段块作的选项。

返回

块 Blob 阶段块作的响应数据。

stageBlockFromURL(string, string, number, number, BlockBlobStageBlockFromURLOptions)

阶段阻止 URL作创建一个新块,作为从 URL 读取内容的 Blob 的一部分提交。 此 API 从版本 2018-03-28 开始提供。

function stageBlockFromURL(blockId: string, sourceURL: string, offset?: number, count?: number, options?: BlockBlobStageBlockFromURLOptions)

参数

blockId

string

base64 编码的 64 字节值

sourceURL

string

指定 Blob 的 URL。 该值的长度可能高达 2 KB,指定 Blob。 该值应采用 URL 编码,因为它将显示在请求 URI 中。 源 Blob 必须是公共的,或者必须通过共享访问签名进行身份验证。 如果源 Blob 是公共的,则无需进行身份验证即可执行该作。 以下是源对象 URL 的一些示例:- https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<日期时间>

offset

number

要下载的 Blob 的位置,大于或等于 0

count

number

要下载的数据量大于 0。 在未定义时将下载到末尾

options
BlockBlobStageBlockFromURLOptions

块 Blob 阶段块的 URL作的选项。

返回

块 Blob 阶段块的 URL作的响应数据。

syncCopyFromURL(string, BlobSyncCopyFromURLOptions)

同步的“从 URL 复制”作将 Blob 或 Internet 资源复制到新的 Blob。 在复制完成之前,它不会返回响应。

function syncCopyFromURL(copySource: string, options?: BlobSyncCopyFromURLOptions)

参数

copySource

string

要从中复制的源 URL(共享访问签名(SAS)可能需要进行身份验证

返回

syncUploadFromURL(string, BlockBlobSyncUploadFromURLOptions)

创建一个新的块 Blob,其中从给定 URL 读取 Blob 的内容。 从 2020-04-08 版本开始,支持此 API。 URL 中的 Put Blob 不支持部分更新;现有 Blob 的内容将被新 Blob 的内容覆盖。 若要使用源 URL 对块 blob 的内容执行部分更新,请使用 <xref:stageBlockFromURL> 和 <xref:commitBlockList>。

function syncUploadFromURL(sourceURL: string, options?: BlockBlobSyncUploadFromURLOptions)

参数

sourceURL

string

指定 Blob 的 URL。 该值的长度可能高达 2 KB,指定 Blob。 该值应采用 URL 编码,因为它将显示在请求 URI 中。 源 Blob 必须是公共的,或者必须通过共享访问签名进行身份验证。 如果源 Blob 是公共的,则无需进行身份验证即可执行该作。 以下是源对象 URL 的一些示例:- https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<日期时间>

options
BlockBlobSyncUploadFromURLOptions

可选参数。

返回

undelete(BlobUndeleteOptions)

还原软删除 Blob 的内容和元数据以及任何关联的软删除快照。 仅在版本 2017-07-29 或更高版本上支持取消删除 Blob。

function undelete(options?: BlobUndeleteOptions)

参数

options
BlobUndeleteOptions

Blob 取消删除作的可选选项。

返回

upload(HttpRequestBody, number, BlockBlobUploadOptions)

创建新的块 blob,或更新现有块 Blob 的内容。 更新现有块 Blob 会覆盖 Blob 上的任何现有元数据。 不支持部分更新;现有 Blob 的内容将被新内容覆盖。 若要执行块 blob 的部分更新,请使用 <xref:stageBlock> 和 <xref:commitBlockList>。 这是一种非并行上传方法,请使用 <xref:uploadFile>、<xref:uploadStream> 或 <xref:uploadBrowserData>,以提高并发上传的性能。

function upload(body: HttpRequestBody, contentLength: number, options?: BlockBlobUploadOptions)

参数

body

HttpRequestBody

Blob、字符串、ArrayBuffer、ArrayBufferView 或返回一个新的可读流,其偏移量从数据源开始。

contentLength

number

正文长度(以字节为单位)。 使用 Buffer.byteLength() 计算字符串的正文长度,包括非 Base64/Hex 编码字符。

options
BlockBlobUploadOptions

块 Blob 上传作的选项。

返回

块 Blob 上传作的响应数据。

示例用法:

const content = "Hello world!";
const uploadBlobResponse = await blockBlobClient.upload(content, content.length);

uploadBrowserData(Blob | ArrayBuffer | ArrayBufferView, BlockBlobParallelUploadOptions)

警告

现已弃用此 API。

Use <xref:uploadData> instead.

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

当缓冲区长度小于或等于 256MB 时,此方法将使用 1 个上传调用来完成上传。 否则,此方法将调用 <xref:stageBlock> 来上传块,最后调用 <xref:commitBlockList> 提交块列表。

要设置的常见 <xref:BlockBlobParallelUploadOptions.blobHTTPHeaders> 选项是 blobContentType,使浏览器能够基于文件类型提供功能。

function uploadBrowserData(browserData: Blob | ArrayBuffer | ArrayBufferView, options?: BlockBlobParallelUploadOptions)

参数

browserData

Blob | ArrayBuffer | ArrayBufferView

Blob、文件、ArrayBuffer 或 ArrayBufferView

options
BlockBlobParallelUploadOptions

用于上传浏览器数据的选项。

返回

Blob 上传作的响应数据。

uploadData(Buffer | Blob | ArrayBuffer | ArrayBufferView, BlockBlobParallelUploadOptions)

将 Buffer(Node.js)/Blob(浏览器)/ArrayBuffer/ArrayBufferView 对象上传到 BlockBlob。 当数据长度不超过指定 <xref:BlockBlobParallelUploadOptions.maxSingleShotSize>(默认值为 <xref:BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES>),此方法将使用 1 个 <xref:upload> 调用来完成上传。 否则,此方法将调用 <xref:stageBlock> 来上传块,最后调用 <xref:commitBlockList> 提交块列表。

要设置的常见 <xref:BlockBlobParallelUploadOptions.blobHTTPHeaders> 选项是 blobContentType,使浏览器能够基于文件类型提供功能。

function uploadData(data: Buffer | Blob | ArrayBuffer | ArrayBufferView, options?: BlockBlobParallelUploadOptions)

参数

data

Buffer | Blob | ArrayBuffer | ArrayBufferView

Buffer(Node.js)、Blob、ArrayBuffer 或 ArrayBufferView

返回

uploadFile(string, BlockBlobParallelUploadOptions)

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

当文件大小小于或等于 256MB 时,此方法将使用 1 个上传调用来完成上传。 否则,此方法将调用 stageBlock 以上传块,最后调用 commitBlockList 以提交块列表。

function uploadFile(filePath: string, options?: BlockBlobParallelUploadOptions)

参数

filePath

string

本地文件的完整路径

options
BlockBlobParallelUploadOptions

上传到块 Blob作的选项。

返回

Blob 上传作的响应数据。

uploadStream(Readable, number, number, BlockBlobUploadStreamOptions)

仅在NODE.JS运行时中可用。 将 Node.js 可读流上传到块 blob 中。

性能改进提示:

  • 输入流 highWaterMark 最好使用 bufferSize 参数设置相同的值,这将避免 Buffer.concat()作。
function uploadStream(stream: Readable, bufferSize?: number, maxConcurrency?: number, options?: BlockBlobUploadStreamOptions)

参数

stream

Readable

Node.js 可读流

bufferSize

number

分配的每个缓冲区的大小,也是上传块 blob 中的块大小。 默认值为 8MB

maxConcurrency

number

最大并发性表示可以分配的最大缓冲区数,与最大上传并发性有正相关。 默认值为 5

options
BlockBlobUploadStreamOptions

将流上传到块 Blob作的选项。

返回

Blob 上传作的响应数据。

withSnapshot(string)

创建与源相同的新 BlockBlobClient 对象,但具有指定的快照时间戳。 提供“”将删除快照,并将 URL 返回到基本 Blob。

function withSnapshot(snapshot: string)

参数

snapshot

string

快照时间戳。

返回

与源相同的新 BlockBlobClient 对象,但具有指定的快照时间戳。

withVersion(string)

创建一个新的 BlobClient 对象,该对象指向此 Blob 的版本。 提供“”将删除 versionId 并将客户端返回到基本 Blob。

function withVersion(versionId: string)

参数

versionId

string

versionId。

返回

一个新的 BlobClient 对象,指向此 Blob 的版本。