你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
BlobServiceClient 类
在帐户级别与 Blob 服务交互的客户端。
此客户端提供检索和配置帐户属性的操作,以及列出、创建和删除帐户中的容器。 对于与特定容器或 Blob 相关的操作,也可以使用 get_client 函数检索这些实体的客户端。
- 继承
-
azure.storage.blob._shared.base_client_async.AsyncStorageAccountHostsMixinBlobServiceClientazure.storage.blob._blob_service_client.BlobServiceClientBlobServiceClientazure.storage.blob._encryption.StorageEncryptionMixinBlobServiceClient
构造函数
BlobServiceClient(account_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | AsyncTokenCredential | None = None, **kwargs: Any)
参数
- account_url
- str
Blob 存储帐户的 URL。 URL 路径中包含的任何其他实体 ((例如容器或 blob) )将被丢弃。 可以选择使用 SAS 令牌对此 URL 进行身份验证。
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 如果资源 URI 已包含 SAS 令牌,则会忽略此令牌,转而使用显式凭据
- AzureSasCredential 的情况除外,其中冲突的 SAS 令牌将引发 ValueError。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
- secondary_hostname
- str
辅助终结点的主机名。
- max_block_size
- int
用于以区块为单位上传块 Blob 的最大区块大小。
默认为 4*1024*1024
或 4MB。
- max_single_put_size
- int
如果 blob 大小小于或等于 max_single_put_size,则只上传一个 http PUT 请求的 Blob。 如果 blob 大小大于 max_single_put_size,则 Blob 将以区块上传。 默认为 64*1024*1024
或 64MB。
- min_large_block_upload_threshold
- int
上传块 Blob 时使用内存高效算法所需的最小区块大小。 默认为 4*1024*1024
+1。
- use_byte_buffer
- bool
使用字节缓冲区上传块 Blob。 默认为 False。
- max_page_size
- int
用于上传页 Blob 的最大区块大小。 默认为 4*1024*1024
或 4MB。
- max_single_get_size
- int
在单个调用中下载的 Blob 的最大大小,超出的部分将以区块 (可以并行) 下载。 默认为 32*1024*1024
或 32MB。
- max_chunk_get_size
- int
用于下载 Blob 的最大区块大小。 默认为 4*1024*1024
或 4MB。
方法
close |
此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。 |
create_container |
在指定的帐户下创建新容器。 如果已存在同名的容器,则会引发 ResourceExistsError。 此方法返回与新创建的容器交互的客户端。 |
delete_container |
标记要删除的指定容器。 在稍后的垃圾回收期间,将删除该容器及其包含的任何 Blob。 如果未找到容器,则会引发 ResourceNotFoundError。 |
find_blobs_by_tags |
“筛选 Blob”操作使调用方能够列出标记与给定搜索表达式匹配的所有容器中的 Blob。 筛选器 Blob 在存储帐户中的所有容器中进行搜索,但可以在表达式中限定为单个容器。 |
from_connection_string |
从连接字符串创建 BlobServiceClient。 |
get_account_information |
获取与存储帐户相关的信息。 如果用户具有对容器或 Blob 的 SAS,也可以检索该信息。 返回的字典中的键包括“sku_name”和“account_kind”。 |
get_blob_client |
获取要与指定 Blob 交互的客户端。 Blob 不需要已存在。 |
get_container_client |
获取要与指定容器交互的客户端。 容器不需要已经存在。 |
get_service_properties |
获取存储帐户的 Blob 服务的属性,包括 Azure 存储分析。 |
get_service_stats |
检索与 Blob 服务的复制有关的统计信息。 仅当为存储帐户启用读取访问异地冗余复制时,它才可用。 通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 在通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时所选区域中存在主要位置。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。 |
get_user_delegation_key |
获取用于对 SAS 令牌进行签名的用户委托密钥。 服务对象上必须存在令牌凭据,此请求才能成功。 |
list_containers |
返回一个生成器,以列出指定帐户下的容器。 生成器将延迟遵循服务返回的继续标记,并在返回所有容器后停止。 |
set_service_properties |
设置存储帐户的 Blob 服务的属性,包括 Azure 存储分析。 如果元素 (例如,analytics_logging) 保留为 None,则保留该服务上该功能的现有设置。 |
undelete_container |
还原软删除的容器。 只有在删除保留策略中设置的指定天数内使用时,操作才会成功。 版本 12.4.0 中的新增功能:此操作是在 API 版本“2019-12-12”中引入的。 |
close
此方法用于关闭客户端打开的套接字。 与上下文管理器一起使用时,不需要使用它。
async close()
create_container
在指定的帐户下创建新容器。
如果已存在同名的容器,则会引发 ResourceExistsError。 此方法返回与新创建的容器交互的客户端。
async create_container(name: str, metadata: Dict[str, str] | None = None, public_access: PublicAccess | str | None = None, **kwargs) -> ContainerClient
参数
- container_encryption_scope
- dict 或 ContainerEncryptionScope
指定要在容器上设置的默认加密范围,并将其用于将来的所有写入。
版本 12.2.0 中的新增功能。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回类型
delete_container
标记要删除的指定容器。
在稍后的垃圾回收期间,将删除该容器及其包含的任何 Blob。 如果未找到容器,则会引发 ResourceNotFoundError。
async delete_container(container: ContainerProperties | str, lease: BlobLeaseClient | str | None = None, **kwargs) -> None
参数
- lease
如果指定,则仅当容器的租约处于活动状态且与此 ID 匹配时,delete_container才会成功。 如果容器具有活动租约,则为必需。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- etag
- str
ETag 值或通配符 (*)。 用于检查资源是否已更改,并根据 match_condition 参数指定的条件进行操作。
- match_condition
- MatchConditions
要对 etag 使用的匹配条件。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回类型
find_blobs_by_tags
“筛选 Blob”操作使调用方能够列出标记与给定搜索表达式匹配的所有容器中的 Blob。 筛选器 Blob 在存储帐户中的所有容器中进行搜索,但可以在表达式中限定为单个容器。
find_blobs_by_tags(filter_expression: str, **kwargs: Any) -> AsyncItemPaged[FilteredBlob]
参数
- filter_expression
- str
用于查找其标记与指定条件匹配的 blob 的表达式。 例如 “”yourtagname“='firsttag' and ”yourtagname2“='secondtag'” 若要指定容器,例如 “@container='containerName' and ”Name“='C'”
- results_per_page
- int
分页时每页的最大结果。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
BlobProperties 的可迭代 (自动分页) 响应。
返回类型
from_connection_string
从连接字符串创建 BlobServiceClient。
from_connection_string(conn_str: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self
参数
- credential
用于进行身份验证的凭据。 如果帐户 URL 已有 SAS 令牌,或者连接字符串已具有共享访问密钥值,则这是可选的。 该值可以是 SAS 令牌字符串、AzureSasCredential 的实例或 azure.core.credentials 中的 AzureNamedKeyCredential、帐户共享访问密钥或 azure.identity 中的 TokenCredentials 类的实例。 此处提供的凭据优先于连接字符串中的凭据。 如果使用 AzureNamedKeyCredential 的实例,则“name”应为存储帐户名称,“密钥”应为存储帐户密钥。
返回
Blob 服务客户端。
返回类型
get_account_information
获取与存储帐户相关的信息。
如果用户具有对容器或 Blob 的 SAS,也可以检索该信息。 返回的字典中的键包括“sku_name”和“account_kind”。
async get_account_information(**kwargs: Any) -> Dict[str, str]
返回
帐户信息 (SKU 和帐户类型) 。
返回类型
get_blob_client
获取要与指定 Blob 交互的客户端。
Blob 不需要已存在。
get_blob_client(container: ContainerProperties | str, blob: BlobProperties | str, snapshot: Dict[str, Any] | str | None = None, *, version_id: str | None = None) -> BlobClient
参数
- version_id
- str
version id 参数是一个不透明的 DateTime 值,如果存在,则指定要操作的 Blob 版本。
返回
BlobClient。
返回类型
get_container_client
获取要与指定容器交互的客户端。
容器不需要已经存在。
get_container_client(container: ContainerProperties | str) -> ContainerClient
参数
返回
ContainerClient。
返回类型
get_service_properties
获取存储帐户的 Blob 服务的属性,包括 Azure 存储分析。
async get_service_properties(**kwargs: Any) -> Dict[str, Any]
参数
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
包含 Blob 服务属性(例如分析日志记录、小时/分钟指标、cors 规则等)的对象。
返回类型
get_service_stats
检索与 Blob 服务的复制有关的统计信息。
仅当为存储帐户启用读取访问异地冗余复制时,它才可用。
通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 在通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时所选区域中存在主要位置。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。
async get_service_stats(**kwargs: Any) -> Dict[str, Any]
参数
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
Blob 服务统计信息。
返回类型
get_user_delegation_key
获取用于对 SAS 令牌进行签名的用户委托密钥。 服务对象上必须存在令牌凭据,此请求才能成功。
async get_user_delegation_key(key_start_time: datetime, key_expiry_time: datetime, **kwargs: Any) -> UserDelegationKey
参数
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
用户委托密钥。
返回类型
list_containers
返回一个生成器,以列出指定帐户下的容器。
生成器将延迟遵循服务返回的继续标记,并在返回所有容器后停止。
list_containers(name_starts_with: str | None = None, include_metadata: bool | None = False, **kwargs) -> AsyncItemPaged[ContainerProperties]
参数
- include_deleted
- bool
指定要在响应中返回的已删除容器。 这适用于已启用容器还原的帐户。 默认值为 False。 .. versionadded:: 12.4.0
- include_system
- bool
指定应包含系统容器的标志。 .. versionadded:: 12.10.0
- results_per_page
- int
每个 API 调用要检索的最大容器名称数。 如果请求未指定,服务器将返回最多 5,000 个项。
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
ContainerProperties 的可迭代 (自动分页) 。
返回类型
set_service_properties
设置存储帐户的 Blob 服务的属性,包括 Azure 存储分析。
如果元素 (例如,analytics_logging) 保留为 None,则保留该服务上该功能的现有设置。
async set_service_properties(analytics_logging: BlobAnalyticsLogging | None = None, hour_metrics: Metrics | None = None, minute_metrics: Metrics | None = None, cors: List[CorsRule] | None = None, target_version: str | None = None, delete_retention_policy: RetentionPolicy | None = None, static_website: StaticWebsite | None = None, **kwargs) -> None
参数
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回类型
undelete_container
还原软删除的容器。
只有在删除保留策略中设置的指定天数内使用时,操作才会成功。
版本 12.4.0 中的新增功能:此操作是在 API 版本“2019-12-12”中引入的。
async undelete_container(deleted_container_name: str, deleted_container_version: str, **kwargs: Any) -> ContainerClient
参数
- timeout
- int
设置操作的服务器端超时时间(以秒为单位)。 有关详细信息,请参阅 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 不会在客户端上跟踪或验证此值。 若要配置客户端网络超时,请参阅 此处。
返回
恢复的软删除的 ContainerClient。
返回类型
属性
api_version
用于请求的存储 API 的版本。
location_mode
客户端当前使用的位置模式。
默认情况下,此为“主要”。 选项包括“primary”和“secondary”。
primary_endpoint
完整的主终结点 URL。
primary_hostname
主终结点的主机名。
secondary_endpoint
完整的辅助终结点 URL(如果已配置)。
如果不可用,将引发 ValueError。 若要显式指定辅助主机名,请在实例化时使用可选的 secondary_hostname 关键字 (keyword) 参数。
例外
secondary_hostname
辅助终结点的主机名。
如果不可用,则此项将为“无”。 若要显式指定辅助主机名,请在实例化时使用可选的 secondary_hostname 关键字 (keyword) 参数。
url
此实体的完整终结点 URL,包括 SAS 令牌(如果使用)。
这可以是主终结点,也可以是辅助终结点,具体取决于当前 location_mode。 :returns:此实体的完整终结点 URL,包括 SAS 令牌(如果使用)。 :rtype:str