你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
BlobServiceClient class
BlobServiceClient 表示 Azure 存储 Blob 服务的客户端,允许你操作 Blob 容器。
- Extends
-
StorageClient
构造函数
Blob |
创建 BlobServiceClient 的实例。 |
Blob |
创建 BlobServiceClient 的实例。 |
继承属性
account |
|
credential | 例如 AnonymousCredential、StorageSharedKeyCredential 或包中的任何 |
url | 编码的 URL 字符串值。 |
方法
create |
创建 Blob 容器。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-container |
delete |
删除 Blob 容器。 |
find |
返回一个异步可迭代器,用于查找指定帐户下具有指定标记的所有 blob。 .byPage () 返回一个异步可迭代器,用于列出页中的 Blob。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties 使用
使用
使用
使用标记分页的示例:
|
from |
从连接字符串创建 BlobServiceClient 的实例。 |
generate |
仅适用于使用共享密钥凭据构造的 BlobServiceClient。 根据传入的客户端属性和参数, (SAS) URI 生成 Blob 帐户共享访问签名。 SAS 由客户端的共享密钥凭据签名。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/create-account-sas |
get |
“获取帐户信息”操作返回指定帐户的 SKU 名称和帐户类型。 从版本 2018-03-28 开始,“获取帐户信息”操作适用于服务版本。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information |
get |
创建 BlobBatchClient 对象以执行批处理操作。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch |
get |
创建 ContainerClient 对象 |
get |
获取存储帐户的 Blob 服务的属性,包括 存储分析 和 CORS (跨域资源共享) 规则的属性。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-properties |
get |
检索与 Blob 服务的复制有关的统计信息。 仅在为存储帐户启用了读访问的地域冗余复制时,才能在辅助位置的终结点上使用它。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-stats |
get |
仅在使用持有者令牌身份验证 (TokenCredential) 时才可用。 检索 Blob 服务的用户委派密钥。 这仅在使用持有者令牌身份验证时有效。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-user-delegation-key |
list |
返回一个异步可迭代器,用于列出指定帐户下的所有容器。 .byPage () 返回一个异步可迭代器,用于列出页面中的容器。 使用
使用
使用
使用标记分页的示例:
|
set |
设置存储帐户的 Blob 服务终结点的属性,包括存储分析、CORS (跨域资源共享) 规则和软删除设置的属性。 请参见https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-service-properties |
undelete |
还原以前删除的 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
用于配置容器删除操作的选项。
返回
Promise<ContainerDeleteResponse>
容器删除响应。
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
指定与共享访问签名关联的资源类型。
可选参数。
返回
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
服务获取帐户信息操作的选项。
返回
Promise<ServiceGetAccountInfoResponse>
服务获取帐户信息操作的响应数据。
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
服务获取属性操作的选项。
返回
Promise<ServiceGetPropertiesResponse>
服务获取属性操作的响应数据。
getStatistics(ServiceGetStatisticsOptions)
检索与 Blob 服务的复制有关的统计信息。 仅在为存储帐户启用了读访问的地域冗余复制时,才能在辅助位置的终结点上使用它。
请参见https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-service-stats
function getStatistics(options?: ServiceGetStatisticsOptions): Promise<ServiceGetStatisticsResponse>
参数
- options
- ServiceGetStatisticsOptions
服务获取统计信息操作的选项。
返回
Promise<ServiceGetStatisticsResponse>
服务获取统计信息操作的响应数据。
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 天内
返回
Promise<ServiceGetUserDelegationKeyResponse>
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>
参数
- properties
- BlobServiceProperties
- options
- ServiceSetPropertiesOptions
服务集属性操作的选项。
返回
Promise<ServiceSetPropertiesResponse>
服务集属性操作的响应数据。
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 }>
容器删除响应。