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

BlobServiceClient class

BlobServiceClient 表示 Azure 存储 Blob 服务的客户端,允许你操作 Blob 容器。

Extends

StorageClient

构造函数

BlobServiceClient(string, PipelineLike)

创建 BlobServiceClient 的实例。

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

创建 BlobServiceClient 的实例。

继承属性

accountName
credential

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

url

编码的 URL 字符串值。

方法

createContainer(string, ContainerCreateOptions)

创建 Blob 容器。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-container

deleteContainer(string, ContainerDeleteMethodOptions)

删除 Blob 容器。

findBlobsByTags(string, ServiceFindBlobByTagsOptions)

返回一个异步可迭代器,用于查找指定帐户下具有指定标记的所有 blob。

.byPage () 返回一个异步可迭代器,用于列出页中的 Blob。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties

使用 for await 语法的示例:

let i = 1;
for await (const blob of blobServiceClient.findBlobsByTags("tagkey='tagvalue'")) {
  console.log(`Blob ${i++}: ${container.name}`);
}

使用 iter.next() 的示例:

let i = 1;
const iter = blobServiceClient.findBlobsByTags("tagkey='tagvalue'");
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

使用 byPage() 的示例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of blobServiceClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name}`);
    }
  }
}

使用标记分页的示例:

let i = 1;
let iterator = blobServiceClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
if (response.blobs) {
  for (const blob of response.blobs) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient
  .findBlobsByTags("tagkey='tagvalue'")
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints blob names
if (response.blobs) {
  for (const blob of response.blobs) {
     console.log(`Blob ${i++}: ${blob.name}`);
  }
}
fromConnectionString(string, StoragePipelineOptions)

从连接字符串创建 BlobServiceClient 的实例。

generateAccountSasUrl(Date, AccountSASPermissions, string, ServiceGenerateAccountSasUrlOptions)

仅适用于使用共享密钥凭据构造的 BlobServiceClient。

根据传入的客户端属性和参数, (SAS) URI 生成 Blob 帐户共享访问签名。 SAS 由客户端的共享密钥凭据签名。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas

getAccountInfo(ServiceGetAccountInfoOptions)

“获取帐户信息”操作返回指定帐户的 SKU 名称和帐户类型。 从版本 2018-03-28 开始,“获取帐户信息”操作适用于服务版本。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information

getBlobBatchClient()

创建 BlobBatchClient 对象以执行批处理操作。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch

getContainerClient(string)

创建 ContainerClient 对象

getProperties(ServiceGetPropertiesOptions)

获取存储帐户的 Blob 服务的属性,包括 存储分析 和 CORS (跨域资源共享) 规则的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties

getStatistics(ServiceGetStatisticsOptions)

检索与 Blob 服务的复制有关的统计信息。 仅在为存储帐户启用了读访问的地域冗余复制时,才能在辅助位置的终结点上使用它。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-stats

getUserDelegationKey(Date, Date, ServiceGetUserDelegationKeyOptions)

仅在使用持有者令牌身份验证 (TokenCredential) 时才可用。

检索 Blob 服务的用户委派密钥。 这仅在使用持有者令牌身份验证时有效。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key

listContainers(ServiceListContainersOptions)

返回一个异步可迭代器,用于列出指定帐户下的所有容器。

.byPage () 返回一个异步可迭代器,用于列出页面中的容器。

使用 for await 语法的示例:

let i = 1;
for await (const container of blobServiceClient.listContainers()) {
  console.log(`Container ${i++}: ${container.name}`);
}

使用 iter.next() 的示例:

let i = 1;
const iter = blobServiceClient.listContainers();
let containerItem = await iter.next();
while (!containerItem.done) {
  console.log(`Container ${i++}: ${containerItem.value.name}`);
  containerItem = await iter.next();
}

使用 byPage() 的示例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of blobServiceClient.listContainers().byPage({ maxPageSize: 20 })) {
  if (response.containerItems) {
    for (const container of response.containerItems) {
      console.log(`Container ${i++}: ${container.name}`);
    }
  }
}

使用标记分页的示例:

let i = 1;
let iterator = blobServiceClient.listContainers().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 container names
if (response.containerItems) {
  for (const container of response.containerItems) {
    console.log(`Container ${i++}: ${container.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient
  .listContainers()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 container names
if (response.containerItems) {
  for (const container of response.containerItems) {
     console.log(`Container ${i++}: ${container.name}`);
  }
}
setProperties(BlobServiceProperties, ServiceSetPropertiesOptions)

设置存储帐户的 Blob 服务终结点的属性,包括存储分析、CORS (跨域资源共享) 规则和软删除设置的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties

undeleteContainer(string, string, ServiceUndeleteContainerOptions)

还原以前删除的 Blob 容器。 仅当为与容器关联的存储帐户启用了容器软删除时,此 API 才起作用。

构造函数详细信息

BlobServiceClient(string, PipelineLike)

创建 BlobServiceClient 的实例。

new BlobServiceClient(url: string, pipeline: PipelineLike)

参数

url

string

指向 Azure 存储 Blob 服务的客户端字符串,例如“https://myaccount.blob.core.windows.net"”。 如果使用 AnonymousCredential,则可以追加 SAS,例如“https://myaccount.blob.core.windows.net?sasString"”。

pipeline
PipelineLike

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

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

创建 BlobServiceClient 的实例。

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

参数

url

string

指向 Azure 存储 Blob 服务的客户端字符串,例如“https://myaccount.blob.core.windows.net"”。 如果使用 AnonymousCredential,则可以追加 SAS,例如“https://myaccount.blob.core.windows.net?sasString"”。

credential

StorageSharedKeyCredential | AnonymousCredential | TokenCredential

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

options
StoragePipelineOptions

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

使用 DefaultAzureCredential 的示例:@azure/identity

const account = "<storage account name>";

const defaultAzureCredential = new DefaultAzureCredential();

const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  defaultAzureCredential
);

使用帐户名称/密钥的示例:

const account = "<storage account name>"
const sharedKeyCredential = new StorageSharedKeyCredential(account, "<account key>");

const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  sharedKeyCredential
);

继承属性详细信息

accountName

accountName: string

属性值

string

继承自 StorageClient.accountName

credential

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

credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential

属性值

继承自 StorageClient.credential

url

编码的 URL 字符串值。

url: string

属性值

string

继承自 StorageClient.url

方法详细信息

createContainer(string, ContainerCreateOptions)

创建 Blob 容器。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-container

function createContainer(containerName: string, options?: ContainerCreateOptions): Promise<{ containerClient: ContainerClient, containerCreateResponse: ContainerCreateResponse }>

参数

containerName

string

要创建的容器的名称。

options
ContainerCreateOptions

用于配置容器创建操作的选项。

返回

Promise<{ containerClient: ContainerClient, containerCreateResponse: ContainerCreateResponse }>

容器创建响应和相应的容器客户端。

deleteContainer(string, ContainerDeleteMethodOptions)

删除 Blob 容器。

function deleteContainer(containerName: string, options?: ContainerDeleteMethodOptions): Promise<ContainerDeleteResponse>

参数

containerName

string

要删除的容器的名称。

options
ContainerDeleteMethodOptions

用于配置容器删除操作的选项。

返回

容器删除响应。

findBlobsByTags(string, ServiceFindBlobByTagsOptions)

返回一个异步可迭代器,用于查找指定帐户下具有指定标记的所有 blob。

.byPage () 返回一个异步可迭代器,用于列出页中的 Blob。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties

使用 for await 语法的示例:

let i = 1;
for await (const blob of blobServiceClient.findBlobsByTags("tagkey='tagvalue'")) {
  console.log(`Blob ${i++}: ${container.name}`);
}

使用 iter.next() 的示例:

let i = 1;
const iter = blobServiceClient.findBlobsByTags("tagkey='tagvalue'");
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

使用 byPage() 的示例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of blobServiceClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name}`);
    }
  }
}

使用标记分页的示例:

let i = 1;
let iterator = blobServiceClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
if (response.blobs) {
  for (const blob of response.blobs) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient
  .findBlobsByTags("tagkey='tagvalue'")
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints blob names
if (response.blobs) {
  for (const blob of response.blobs) {
     console.log(`Blob ${i++}: ${blob.name}`);
  }
}
function findBlobsByTags(tagFilterSqlExpression: string, options?: ServiceFindBlobByTagsOptions): PagedAsyncIterableIterator<FilterBlobItem, ServiceFindBlobsByTagsSegmentResponse, PageSettings>

参数

tagFilterSqlExpression

string

where 参数使调用方能够查询其标记与给定表达式匹配的 blob。 给定表达式的计算结果必须为 true,才能在结果中返回 Blob。 [OData - ABNF] 筛选器语法规则定义 where 查询参数的值的正式语法;但是,Blob 服务中仅支持一部分 OData 筛选器语法。

options
ServiceFindBlobByTagsOptions

用于按标记查找 Blob 的选项。

返回

fromConnectionString(string, StoragePipelineOptions)

从连接字符串创建 BlobServiceClient 的实例。

static function fromConnectionString(connectionString: string, options?: StoragePipelineOptions): BlobServiceClient

参数

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

options
StoragePipelineOptions

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

返回

generateAccountSasUrl(Date, AccountSASPermissions, string, ServiceGenerateAccountSasUrlOptions)

仅适用于使用共享密钥凭据构造的 BlobServiceClient。

根据传入的客户端属性和参数, (SAS) URI 生成 Blob 帐户共享访问签名。 SAS 由客户端的共享密钥凭据签名。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas

function generateAccountSasUrl(expiresOn?: Date, permissions?: AccountSASPermissions, resourceTypes?: string, options?: ServiceGenerateAccountSasUrlOptions): string

参数

expiresOn

Date

可选。 共享访问签名变为无效的时间。 如果未提供,则默认为一小时后。

permissions
AccountSASPermissions

指定要与 SAS 关联的权限列表。

resourceTypes

string

指定与共享访问签名关联的资源类型。

options
ServiceGenerateAccountSasUrlOptions

可选参数。

返回

string

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

getAccountInfo(ServiceGetAccountInfoOptions)

“获取帐户信息”操作返回指定帐户的 SKU 名称和帐户类型。 从版本 2018-03-28 开始,“获取帐户信息”操作适用于服务版本。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information

function getAccountInfo(options?: ServiceGetAccountInfoOptions): Promise<ServiceGetAccountInfoResponse>

参数

options
ServiceGetAccountInfoOptions

服务获取帐户信息操作的选项。

返回

服务获取帐户信息操作的响应数据。

getBlobBatchClient()

创建 BlobBatchClient 对象以执行批处理操作。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch

function getBlobBatchClient(): BlobBatchClient

返回

此服务的新 BlobBatchClient 对象。

getContainerClient(string)

创建 ContainerClient 对象

function getContainerClient(containerName: string): ContainerClient

参数

containerName

string

容器名称

返回

给定容器名称的新 ContainerClient 对象。

用法示例:

const containerClient = blobServiceClient.getContainerClient("<container name>");

getProperties(ServiceGetPropertiesOptions)

获取存储帐户的 Blob 服务的属性,包括 存储分析 和 CORS (跨域资源共享) 规则的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties

function getProperties(options?: ServiceGetPropertiesOptions): Promise<ServiceGetPropertiesResponse>

参数

options
ServiceGetPropertiesOptions

服务获取属性操作的选项。

返回

服务获取属性操作的响应数据。

getStatistics(ServiceGetStatisticsOptions)

检索与 Blob 服务的复制有关的统计信息。 仅在为存储帐户启用了读访问的地域冗余复制时,才能在辅助位置的终结点上使用它。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-stats

function getStatistics(options?: ServiceGetStatisticsOptions): Promise<ServiceGetStatisticsResponse>

参数

options
ServiceGetStatisticsOptions

服务获取统计信息操作的选项。

返回

服务获取统计信息操作的响应数据。

getUserDelegationKey(Date, Date, ServiceGetUserDelegationKeyOptions)

仅在使用持有者令牌身份验证 (TokenCredential) 时才可用。

检索 Blob 服务的用户委派密钥。 这仅在使用持有者令牌身份验证时有效。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key

function getUserDelegationKey(startsOn: Date, expiresOn: Date, options?: ServiceGetUserDelegationKeyOptions): Promise<ServiceGetUserDelegationKeyResponse>

参数

startsOn

Date

用户委派 SAS 的开始时间。 必须在当前时间的 7 天内

expiresOn

Date

用户委派 SAS 的结束时间。 必须在当前时间的 7 天内

返回

listContainers(ServiceListContainersOptions)

返回一个异步可迭代器,用于列出指定帐户下的所有容器。

.byPage () 返回一个异步可迭代器,用于列出页面中的容器。

使用 for await 语法的示例:

let i = 1;
for await (const container of blobServiceClient.listContainers()) {
  console.log(`Container ${i++}: ${container.name}`);
}

使用 iter.next() 的示例:

let i = 1;
const iter = blobServiceClient.listContainers();
let containerItem = await iter.next();
while (!containerItem.done) {
  console.log(`Container ${i++}: ${containerItem.value.name}`);
  containerItem = await iter.next();
}

使用 byPage() 的示例:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of blobServiceClient.listContainers().byPage({ maxPageSize: 20 })) {
  if (response.containerItems) {
    for (const container of response.containerItems) {
      console.log(`Container ${i++}: ${container.name}`);
    }
  }
}

使用标记分页的示例:

let i = 1;
let iterator = blobServiceClient.listContainers().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 container names
if (response.containerItems) {
  for (const container of response.containerItems) {
    console.log(`Container ${i++}: ${container.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient
  .listContainers()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 container names
if (response.containerItems) {
  for (const container of response.containerItems) {
     console.log(`Container ${i++}: ${container.name}`);
  }
}
function listContainers(options?: ServiceListContainersOptions): PagedAsyncIterableIterator<ContainerItem, ServiceListContainersSegmentResponse, PageSettings>

参数

options
ServiceListContainersOptions

用于列出容器的选项。

返回

支持分页的 asyncIterableIterator。

setProperties(BlobServiceProperties, ServiceSetPropertiesOptions)

设置存储帐户的 Blob 服务终结点的属性,包括存储分析、CORS (跨域资源共享) 规则和软删除设置的属性。

请参见https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties

function setProperties(properties: BlobServiceProperties, options?: ServiceSetPropertiesOptions): Promise<ServiceSetPropertiesResponse>

参数

options
ServiceSetPropertiesOptions

服务集属性操作的选项。

返回

服务集属性操作的响应数据。

undeleteContainer(string, string, ServiceUndeleteContainerOptions)

还原以前删除的 Blob 容器。 仅当为与容器关联的存储帐户启用了容器软删除时,此 API 才起作用。

function undeleteContainer(deletedContainerName: string, deletedContainerVersion: string, options?: ServiceUndeleteContainerOptions): Promise<{ containerClient: ContainerClient, containerUndeleteResponse: ContainerUndeleteResponse }>

参数

deletedContainerName

string

以前删除的容器的名称。

deletedContainerVersion

string

以前删除的容器的版本,用于唯一标识已删除的容器。

options
ServiceUndeleteContainerOptions

用于配置容器还原操作的选项。

返回

Promise<{ containerClient: ContainerClient, containerUndeleteResponse: ContainerUndeleteResponse }>

容器删除响应。