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

BlockBlobService 类

利用块 Blob,你可以高效上载大型 Blob。 块 Blob 由多个块构成,其中每个块均由一个块 ID 标识。 您可以通过编写一组块并按块 ID 提交这些块来创建或修改块 Blob。 每个块的大小可能不同,最大为 100 MB,块 Blob 最多可以包含 50,000 个块。 因此,块 blob 的最大大小约为 4.75 TB (100 MB X 50,000 块) 。 如果要编写大小不超过 64 MB 的块 Blob,可以使用单个写入操作将其完整上传;请参阅 create_blob_from_bytes。

:type ~azure.storage.common.TokenCredential

继承
BlockBlobService

构造函数

BlockBlobService(account_name=None, account_key=None, sas_token=None, is_emulated=False, protocol='https', endpoint_suffix='core.windows.net', custom_domain=None, request_session=None, connection_string=None, socket_timeout=None, token_credential=None)

参数

account_name
str
默认值: None

存储帐户名称。 这用于对使用帐户密钥签名的请求进行身份验证,并构造存储终结点。 除非提供了连接字符串,或者自定义域与匿名身份验证一起使用,否则是必需的。

account_key
str
默认值: None

存储帐户密钥。 这用于共享密钥身份验证。 如果未指定帐户密钥或 sas 令牌,则将使用匿名访问。

sas_token
str
默认值: None

用于对请求进行身份验证的共享访问签名令牌,而不是帐户密钥。 如果同时指定了帐户密钥和 sas 令牌,则将使用帐户密钥进行签名。 如果两者均未指定,则将使用匿名访问。

is_emulated
bool
默认值: False

是否使用模拟器。 默认为 False。 如果指定, 将替代除连接字符串和请求会话以外的所有其他参数。

protocol
str
默认值: https

用于请求的协议。 默认为 https。

endpoint_suffix
str
默认值: core.windows.net

URL 的主机基组件减去帐户名称。 默认为 Azure (core.windows.net) 。 重写此项以使用中国云 (core.chinacloudapi.cn) 。

custom_domain
str
默认值: None

要使用的自定义域。 这可以在 Azure 门户中进行设置。 例如,“www.mydomain.com”。

request_session
<xref:requests.Session>
默认值: None

用于 http 请求的会话对象。

connection_string
str
默认值: None

如果指定,这将替代请求会话以外的所有其他参数。 有关连接字符串格式,请参阅 http://azure.microsoft.com/en-us/documentation/articles/storage-configure-connection-string/

socket_timeout
int
默认值: None

如果指定,这将替代默认套接字超时。 指定的超时值以秒为单位。 有关默认值,请参阅 _constants.py 中的DEFAULT_SOCKET_TIMEOUT。

token_credential
默认值: None

用于对 HTTPS 请求进行身份验证的令牌凭据。 令牌值应在过期之前更新。

变量

MAX_SINGLE_PUT_SIZE
int

单个 put 调用中支持的最大大小上传。 如果内容长度已知且小于此值,则create_blob_from_* 方法会使用此值。

MAX_BLOCK_SIZE
int

如果内容长度未知或大于 MAX_SINGLE_PUT_SIZE,create_blob_from_* 方法放置的块的大小。 可以放置较小的方块。 服务支持的最大块大小为 100MB。

MIN_LARGE_BLOCK_UPLOAD_THRESHOLD
int

考虑内存优化块上传算法的最小块大小。 此算法仅适用于create_blob_from_file和create_blob_from_stream方法,并会阻止块的完全缓冲。 除了块大小之外,还必须禁用 ContentMD5 验证和加密,因为这些选项需要缓冲块。

方法

abort_copy_blob

中止挂起的copy_blob操作,并将目标 blob 保留为零长度和完整元数据。

acquire_blob_lease

请求新的租约。 如果 Blob 没有活动租约,BLOB 服务将在 Blob 上创建一个租约并返回新的租约 ID。

acquire_container_lease

请求新的租约。 如果容器没有活动租约,则 BLOB 服务会在该容器上创建一个租约,并返回新的租约 ID。

batch_delete_blobs

发送一批多个 Blob 删除请求。

blob delete 方法删除指定的 blob 或快照。 请注意,删除 Blob 也会删除其所有快照。 有关详细信息,请参阅 https://docs.microsoft.com/rest/api/storageservices/delete-blob

batch_set_standard_blob_tier

发送一批多个集块 Blob 层请求。 此 API 仅支持标准存储帐户上的块 Blob。

break_blob_lease

如果 blob 具有活动租约,则中断租约。 在中断租约后,无法进行续订。 任何授权的请求都可以中断租约;请求不需要指定匹配的租约 ID。 中断租约时,允许租用中断期过,在此期间,除中断和释放外,不能对 blob 执行任何租约操作。 在租约成功中断后,响应指示可以获取新租约之前等待的时间间隔(秒)。

也可以释放已中断的租约,此时,其他客户端可以立即获取 Blob 的租约。

break_container_lease

如果容器具有活动租约,则中断租约。 在中断租约后,无法进行续订。 任何授权的请求都可以中断租约;请求不需要指定匹配的租约 ID。 中断租约时,允许租用中断期过,在此期间,除中断和释放外,不能对容器执行任何租用操作。 在租约成功中断后,响应指示可以获取新租约之前等待的时间间隔(秒)。

change_blob_lease

更改活动租约的租约 ID。 更改必须包括当前租约 ID 和新的租约 ID。

change_container_lease

更改活动租约的租约 ID。 更改必须包括当前租约 ID 和新的租约 ID。

copy_blob

复制 Blob。 此操作返回复制操作属性对象。 复制操作可以配置为异步、尽力而为的操作或同步操作。

如果requires_sync为 true,则源必须是块 Blob。 将覆盖任何现有的目标 Blob。 复制操作进行时不能修改目标 Blob。

从块 Blob 复制时,将复制所有提交的块及其块 ID。 不会复制未提交的块。 复制操作结束时,目标 Blob 将具有与源相同的已提交块计数。

可以调用目标 blob 上的get_blob_properties来检查复制操作的状态。 完成复制时,将提交最终的 Blob。

目标容器的名称。 容器必须存在。 :p aram str blob_name:目标 Blob 的名称。 如果目标 Blob 存在,则会覆盖它。 如果不存在,则创建该 URI。 :p aram str copy_source:最多 2 KB 的 URL,用于指定 Azure 文件或 Blob。 此值应为 URL 编码,如同它显示在请求 URI 中那样。 如果源位于另一个帐户中,则源必须是公共的,或者必须通过共享访问签名进行身份验证。 如果源是公共的,则无需身份验证。 示例:https://myaccount.blob.core.windows.net/mycontainer/myblobhttps://myaccount.blob.core.windows.net/mycontainer/myblob?快照= https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken :p aram 元数据:与 Blob 关联的名称-值对作为元数据。 如果未指定名称/值对,则操作会将元数据从源 Blob 或文件复制到目标 Blob。 如果指定了一个或多个名称/值对,则使用指定的元数据创建目标 Blob,并且不会从源 Blob 或文件复制元数据。 :type metadata: dict (str, str) :p aram datetime source_if_modified_since: 一个 DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当源 Blob 自指定日期/时间后发生了修改时才复制 Blob。 :p aram datetime source_if_unmodified_since:DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当源 Blob 自指定日期/时间后未修改时才复制 Blob。 :p aram ETag source_if_match:ETag 值或通配符 () 。指定此条件标头以仅当源 Blob 的 ETag 与指定的值匹配时复制。如果 ETag 值不匹配,Blob 服务将返回状态代码 412 (先决条件失败) 。如果源是 Azure 文件,则无法指定此标头。:p aram ETag source_if_none_match:ETag 值或通配符 () 。 如果指定此条件头,则仅当 Blob 的 ETag 与指定的值不匹配时才复制 Blob。 如果值相同,BLOB 服务将返回状态代码 412(不满足前提条件)。 如果源是 Azure 文件,则无法指定此标头。 :p aram datetime destination_if_modified_since:DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当目标 Blob 自指定日期/时间后发生了修改时才复制 Blob。 如果目标 Blob 未修改,BLOB 服务将返回状态代码 412(不满足前提条件)。 :p aram datetime destination_if_unmodified_since:DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当目标 Blob 自指定日期/时间后未修改时才复制 Blob。 如果目标 Blob 已修改,BLOB 服务将返回状态代码 412(不满足前提条件)。 :p aram ETag destination_if_match:ETag 值或通配符 () 。指定此条件标头的 ETag 值,仅当指定的 ETag 值与现有目标 Blob 的 ETag 值匹配时,才能复制 Blob。如果目标 Blob 的 ETag 与为 If-Match 指定的 ETag 不匹配,则 Blob 服务将返回状态代码 412 (先决条件失败) 。:p aram ETag destination_if_none_match:ETag 值或通配符 () 。 如果为此条件头指定一个 ETag 值,则仅当指定的 ETag 值与目标 Blob 的 ETag 值不匹配时才复制 Blob。 指定通配符 (*),仅当目标 Blob 不存在时才执行此操作。 如果不满足指定的条件,BLOB 服务将返回状态代码 412(不满足前提条件)。 :p aram str destination_lease_id:为此标头指定的租约 ID 必须与目标 Blob 的租约 ID 匹配。 如果请求中不包含租约 ID 或租约 ID 无效,则操作将失败,且显示状态码 412(不满足前提条件)。 :p aram str source_lease_id:仅当给定的租约 ID 与源 blob 的活动租约 ID 匹配时,指定此项以执行复制 Blob 操作。 :p aram int timeout:timeout 参数以秒表示。 :p aram bool requires_sync:强制服务在复制完成之前不会返回响应。 :p aram StandardBlobTier standard_blob_tier:将 blob 设置为的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。 :p aram RehydratePriority rehydrate_priority:指示解除存档 blob 冻结的优先级:return: 复制操作属性,如状态、源和 ID。 :rtype: CopyProperties

create_blob_from_bytes

使用自动分块和进度通知从字节数组创建新的 Blob,或更新现有 Blob 的内容。

create_blob_from_path

使用自动分块和进度通知从文件路径创建新的 Blob,或更新现有 Blob 的内容。

create_blob_from_stream

使用自动分块和进度通知从文件/流创建新的 Blob,或更新现有 Blob 的内容。

create_blob_from_text

通过 str/unicode 创建新 blob,或使用自动分块和进度通知更新现有 Blob 的内容。

create_container

在指定的帐户下创建新容器。 如果已存在同名的容器,则如果fail_on_exist为 True,则操作将失败。

delete_blob

标记要删除的指定 blob 或快照。 该 Blob 将在稍后的垃圾回收期间删除。

请注意,要删除 Blob,必须删除其所有快照。 可以使用“删除 Blob”操作同时删除这两者。

如果为服务启用了删除保留策略,则此操作将软删除 blob 或 快照并将 blob 或快照保留指定的天数。 在指定的天数后,Blob 的数据在垃圾回收期间会从服务中删除。 软删除的 blob 或快照可通过指定 include=Include.Deleted 选项的列表 Blob API 进行访问。 可以使用撤消删除 API 还原软删除的 blob 或快照。

delete_container

标记要删除的指定容器。 在稍后的垃圾回收期间,将删除该容器及其包含的任何 Blob。

exists

如果 blob_name 为 None) ,则返回一个布尔值,该值指示容器是否存在 (,否则返回一个指示 blob 是否存在的布尔值。

extract_date_and_request_id
generate_account_shared_access_signature

为 Blob 服务生成共享访问签名。 将返回的签名与任何 BlobService 的 sas_token 参数一起使用。

generate_blob_shared_access_signature

为 Blob 或其快照之一生成共享访问签名。 将返回的签名与任何 BlobService 的 sas_token 参数一起使用。

generate_container_shared_access_signature

为容器生成共享访问签名。 将返回的签名与任何 BlobService 的 sas_token 参数一起使用。

get_blob_account_information

获取与存储帐户相关的信息。 如果用户具有对容器或 Blob 的 SAS,也可以检索该信息。

get_blob_metadata

返回指定 blob 或快照的所有用户定义的元数据。

get_blob_properties

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

get_blob_service_properties

获取存储帐户的 Blob 服务的属性,包括 Azure 存储分析。

get_blob_service_stats

检索与 Blob 服务的复制有关的统计信息。 仅当为存储帐户启用了读取访问异地冗余复制时,它才可用。

通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 主要位置存在于你通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时选择的区域。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。

get_blob_to_bytes

将 Blob 下载为字节数组,其中包含自动分块和进度通知。 返回具有属性、元数据和内容的 实例 Blob

get_blob_to_path

使用自动分块和进度通知将 Blob 下载到文件路径。 返回具有属性和元数据的 Blob 实例。

get_blob_to_stream

使用自动分块和进度通知将 Blob 下载到流。 返回具有属性和元数据的 Blob 实例。

get_blob_to_text

以 unicode 文本的形式下载 Blob,并自动进行分块和进度通知。 返回具有属性、元数据和内容的 实例 Blob

get_block_list

检索作为块 Blob 一部分上载的块的列表。 为 Blob 保留了两个块列表:

已提交的块列表:已成功提交到具有放置块列表的给定 blob 的块列表。

未提交的块列表:已使用放置块为 Blob 上传但尚未提交的块列表。 这些块存储在 Azure 中并与 Blob 关联,但尚未构成 Blob 的一部分。

get_container_acl

获取指定容器的权限。 这些权限指示是否可以公开访问容器数据。

get_container_metadata

返回指定容器的所有用户定义元数据。

get_container_properties

返回指定容器的所有用户定义元数据和系统属性。 返回的数据不包含该容器的 Blob 列表。

get_user_delegation_key

获取用于对 SAS 令牌进行签名的用户委托密钥。 服务对象上必须存在令牌凭据,此请求才能成功。

list_blob_names

返回一个生成器,用于列出指定容器下的 Blob 名称。 生成器将延迟跟踪服务返回的继续标记,并在返回所有 blob 或到达num_results时停止。

如果指定了num_results,并且帐户的 blob 数超过该数目,则生成器将在完成时具有填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。

list_blobs

返回一个生成器,用于列出指定容器下的 Blob。 生成器将延迟跟踪服务返回的继续标记,并在返回所有 blob 或到达num_results时停止。

如果指定了num_results,并且帐户的 blob 数超过该数目,则生成器将在完成时具有填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。

list_containers

返回一个生成器,以列出指定帐户下的容器。 生成器将延迟遵循服务返回的继续标记,并在返回所有容器或到达num_results时停止。

如果指定了num_results,并且帐户的容器数超过该数目,则生成器在完成时将具有填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。

make_blob_url

创建 URL 以访问 Blob。

make_container_url

创建 URL 以访问容器。

put_block

创建一个要作为 Blob 组成部分提交的新块。

put_block_from_url

创建一个要作为 Blob 组成部分提交的新块。

put_block_list

通过指定组成 Blob 的块 ID 列表编写 Blob。 为了作为 Blob 的一部分写入,块必须在之前的 Put Block 操作中成功写入服务器。

可以调用 Put Block List 来更新 Blob,方法是仅上传已更改的块,然后将新的块和现有块一起提交。 为此,请指定是从提交的块列表或未提交的块列表提交块,还是提交块的最近上载版本,无论块可能属于哪个列表。

release_blob_lease

释放租约。 如果在请求中指定的租约 ID 与 Blob 的关联租约 ID 匹配,则可以释放租约。 通过释放租约,其他客户端可以在释放完成后立即获取 Blob 的租约。

release_container_lease

释放租约。 如果指定的lease_id与容器关联的匹配,则可能会释放租约。 通过释放租约,其他客户端可以在释放完成时立即获取该容器的租约。

renew_blob_lease

续订租约。 如果在请求中指定的租约 ID 与 Blob 的关联租约 ID 匹配,则可以续订租约。 请注意,即使租约已过期,但只要在该租约过期后未修改或再次租用 Blob,就可以续订租约。 在续订租约时,将重置租约持续时间时钟。

renew_container_lease

续订租约。 如果指定的租约 ID 与容器关联的 ID 匹配,则可以续订租约。 请注意,只要自租约过期以来尚没有再次租用容器,即使租约已过期,也可以对其进行续订。 在续订租约时,将重置租约持续时间时钟。

set_blob_metadata

将特定 blob 的用户定义元数据设置为一个或多个名称/值对。

set_blob_properties

在 blob 上设置系统属性。 如果为content_settings设置了一个属性,则将重写所有属性。

set_blob_service_properties

设置存储帐户的 Blob 服务的属性,包括 Azure 存储分析。 如果前 Logging) (元素保留为 None,则保留该服务上该功能的现有设置。

set_container_acl

设置可能与共享访问签名一起使用的指定容器或存储访问策略的权限。 这些权限指示是否可以公开访问容器中的 Blob。

set_container_metadata

为指定的容器设置一个或多个用户定义的名称-值对。 每次调用此操作时,将替换与容器关联的所有现有的元数据。 若要从容器中删除所有元数据,请调用此操作,不带元数据听写。

set_proxy

设置 HTTP CONNECT 隧道的代理服务器主机和端口。

set_standard_blob_tier

设置 Blob 上的块 Blob 层。 此 API 仅支持标准存储帐户上的块 Blob。

:p aram RehydratePriority rehydrate_priority:指示解除存档 blob 冻结的优先级

snapshot_blob

创建 Blob 的只读快照。

undelete_blob

取消删除 Blob 操作可还原软删除 blob 或快照的内容和元数据。 尝试取消删除未软删除的 blob 或快照将成功,而不会进行任何更改。

abort_copy_blob

中止挂起的copy_blob操作,并将目标 blob 保留为零长度和完整元数据。

abort_copy_blob(container_name, blob_name, copy_id, lease_id=None, timeout=None)

参数

container_name
str
必需

目标容器的名称。

blob_name
str
必需

目标 Blob 的名称。

copy_id
str
必需

原始copy_blob操作 copy.id 中提供的复制标识符。

lease_id
str
默认值: None

如果目标 Blob 具有活动无限期租约,则是必需的。

timeout
int
默认值: None

超时参数以秒表示。

acquire_blob_lease

请求新的租约。 如果 Blob 没有活动租约,BLOB 服务将在 Blob 上创建一个租约并返回新的租约 ID。

acquire_blob_lease(container_name, blob_name, lease_duration=-1, proposed_lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

lease_duration
int
默认值: -1

指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。 默认值为 -1, (无限租约) 。

proposed_lease_id
str
默认值: None

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租约 ID 格式不正确,Blob 服务将返回 400 (无效请求) 。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

timeout
int
默认值: None

超时参数以秒表示。

返回

str

acquire_container_lease

请求新的租约。 如果容器没有活动租约,则 BLOB 服务会在该容器上创建一个租约,并返回新的租约 ID。

acquire_container_lease(container_name, lease_duration=-1, proposed_lease_id=None, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_duration
int
默认值: -1

指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。 默认值为 -1, (无限租约) 。

proposed_lease_id
str
默认值: None

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租约 ID 格式不正确,Blob 服务将返回 400 (无效请求) 。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

返回

str

batch_delete_blobs

发送一批多个 Blob 删除请求。

blob delete 方法删除指定的 blob 或快照。 请注意,删除 Blob 也会删除其所有快照。 有关详细信息,请参阅 https://docs.microsoft.com/rest/api/storageservices/delete-blob

batch_delete_blobs(batch_delete_sub_requests, timeout=None)

参数

batch_delete_sub_requests
list(BatchDeleteSubRequest)
必需

Blob 删除要作为批处理发送的请求。

timeout
int
默认值: None

超时参数以秒表示。

返回

已分析的批量删除 HTTP 响应

返回类型

batch_set_standard_blob_tier

发送一批多个集块 Blob 层请求。 此 API 仅支持标准存储帐户上的块 Blob。

batch_set_standard_blob_tier(batch_set_blob_tier_sub_requests, timeout=None)

参数

batch_set_blob_tier_sub_requests
list(BatchSetBlobTierSubRequest)
必需

要作为批处理发送的已设置块 Blob 层请求。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

返回

已分析批处理集层 HTTP 响应,指示每个子请求是否成功。

返回类型

break_blob_lease

如果 blob 具有活动租约,则中断租约。 在中断租约后,无法进行续订。 任何授权的请求都可以中断租约;请求不需要指定匹配的租约 ID。 中断租约时,允许租用中断期过,在此期间,除中断和释放外,不能对 blob 执行任何租约操作。 在租约成功中断后,响应指示可以获取新租约之前等待的时间间隔(秒)。

也可以释放已中断的租约,此时,其他客户端可以立即获取 Blob 的租约。

break_blob_lease(container_name, blob_name, lease_break_period=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

lease_break_period
int
默认值: None

对于中断操作,这是租约在中断前应继续的建议秒持续时间,介于 0 到 60 秒之间。 只有在少于租约的剩余时间时,才能使用中断期。 如果超过租约的剩余时间,则使用租约的剩余时间。 在中断期到期之前,无法使用新租约,但可以将租约保留到超过中断期。 如果此标头未随中断操作一起出现,则固定持续时间的租约将在剩余租约期过后中断,无限租约将立即中断。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

timeout
int
默认值: None

超时参数以秒表示。

返回

int

break_container_lease

如果容器具有活动租约,则中断租约。 在中断租约后,无法进行续订。 任何授权的请求都可以中断租约;请求不需要指定匹配的租约 ID。 中断租约时,允许租用中断期过,在此期间,除中断和释放外,不能对容器执行任何租用操作。 在租约成功中断后,响应指示可以获取新租约之前等待的时间间隔(秒)。

break_container_lease(container_name, lease_break_period=None, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_break_period
int
默认值: None

这是租约在中断前应继续的建议秒持续时间,介于 0 到 60 秒之间。 只有在少于租约的剩余时间时,才能使用中断期。 如果超过租约的剩余时间,则使用租约的剩余时间。 在中断期到期之前,无法使用新租约,但可以将租约保留到超过中断期。 如果此标头未随中断操作一起出现,则固定持续时间的租约将在剩余租约期过后中断,无限租约将立即中断。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

返回

int

change_blob_lease

更改活动租约的租约 ID。 更改必须包括当前租约 ID 和新的租约 ID。

change_blob_lease(container_name, blob_name, lease_id, proposed_lease_id, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

lease_id
str
必需

如果 Blob 具有活动租约,则是必需的。

proposed_lease_id
str
必需

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租用 ID 格式不正确,Blob 服务将返回 400 (无效请求) 。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

timeout
int
默认值: None

超时参数以秒表示。

change_container_lease

更改活动租约的租约 ID。 更改必须包括当前租约 ID 和新的租约 ID。

change_container_lease(container_name, lease_id, proposed_lease_id, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_id
str
必需

活动租约的租约 ID。

proposed_lease_id
str
必需

建议的租约 ID,采用 GUID 字符串格式。 如果建议的租用 ID 格式不正确,Blob 服务将返回 400 (无效请求) 。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

copy_blob

复制 Blob。 此操作返回复制操作属性对象。 复制操作可以配置为异步、尽力而为的操作或同步操作。

如果requires_sync为 true,则源必须是块 Blob。 将覆盖任何现有的目标 Blob。 复制操作进行时不能修改目标 Blob。

从块 Blob 复制时,将复制所有提交的块及其块 ID。 不会复制未提交的块。 复制操作结束时,目标 Blob 将具有与源相同的已提交块计数。

可以调用目标 blob 上的get_blob_properties来检查复制操作的状态。 完成复制时,将提交最终的 Blob。

目标容器的名称。 容器必须存在。 :p aram str blob_name:目标 Blob 的名称。 如果目标 Blob 存在,则会覆盖它。 如果不存在,则创建该 URI。 :p aram str copy_source:最多 2 KB 的 URL,用于指定 Azure 文件或 Blob。 此值应为 URL 编码,如同它显示在请求 URI 中那样。 如果源位于另一个帐户中,则源必须是公共的,或者必须通过共享访问签名进行身份验证。 如果源是公共的,则无需身份验证。 示例:https://myaccount.blob.core.windows.net/mycontainer/myblobhttps://myaccount.blob.core.windows.net/mycontainer/myblob?快照= https://otheraccount.blob.core.windows.net/mycontainer/myblob?sastoken :p aram 元数据:与 Blob 关联的名称-值对作为元数据。 如果未指定名称/值对,则操作会将元数据从源 Blob 或文件复制到目标 Blob。 如果指定了一个或多个名称/值对,则使用指定的元数据创建目标 Blob,并且不会从源 Blob 或文件复制元数据。 :type metadata: dict (str, str) :p aram datetime source_if_modified_since: 一个 DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当源 Blob 自指定日期/时间后发生了修改时才复制 Blob。 :p aram datetime source_if_unmodified_since:DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当源 Blob 自指定日期/时间后未修改时才复制 Blob。 :p aram ETag source_if_match:ETag 值或通配符 () 。指定此条件标头以仅当源 Blob 的 ETag 与指定的值匹配时复制。如果 ETag 值不匹配,Blob 服务将返回状态代码 412 (先决条件失败) 。如果源是 Azure 文件,则无法指定此标头。:p aram ETag source_if_none_match:ETag 值或通配符 () 。 如果指定此条件头,则仅当 Blob 的 ETag 与指定的值不匹配时才复制 Blob。 如果值相同,BLOB 服务将返回状态代码 412(不满足前提条件)。 如果源是 Azure 文件,则无法指定此标头。 :p aram datetime destination_if_modified_since:DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当目标 Blob 自指定日期/时间后发生了修改时才复制 Blob。 如果目标 Blob 未修改,BLOB 服务将返回状态代码 412(不满足前提条件)。 :p aram datetime destination_if_unmodified_since:DateTime 值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当目标 Blob 自指定日期/时间后未修改时才复制 Blob。 如果目标 Blob 已修改,BLOB 服务将返回状态代码 412(不满足前提条件)。 :p aram ETag destination_if_match:ETag 值或通配符 () 。指定此条件标头的 ETag 值,仅当指定的 ETag 值与现有目标 Blob 的 ETag 值匹配时,才能复制 Blob。如果目标 Blob 的 ETag 与为 If-Match 指定的 ETag 不匹配,则 Blob 服务将返回状态代码 412 (先决条件失败) 。:p aram ETag destination_if_none_match:ETag 值或通配符 () 。 如果为此条件头指定一个 ETag 值,则仅当指定的 ETag 值与目标 Blob 的 ETag 值不匹配时才复制 Blob。 指定通配符 (*),仅当目标 Blob 不存在时才执行此操作。 如果不满足指定的条件,BLOB 服务将返回状态代码 412(不满足前提条件)。 :p aram str destination_lease_id:为此标头指定的租约 ID 必须与目标 Blob 的租约 ID 匹配。 如果请求中不包含租约 ID 或租约 ID 无效,则操作将失败,且显示状态码 412(不满足前提条件)。 :p aram str source_lease_id:仅当给定的租约 ID 与源 blob 的活动租约 ID 匹配时,指定此项以执行复制 Blob 操作。 :p aram int timeout:timeout 参数以秒表示。 :p aram bool requires_sync:强制服务在复制完成之前不会返回响应。 :p aram StandardBlobTier standard_blob_tier:将 blob 设置为的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。 :p aram RehydratePriority rehydrate_priority:指示解除存档 blob 冻结的优先级:return: 复制操作属性,如状态、源和 ID。 :rtype: CopyProperties

copy_blob(container_name, blob_name, copy_source, metadata=None, source_if_modified_since=None, source_if_unmodified_since=None, source_if_match=None, source_if_none_match=None, destination_if_modified_since=None, destination_if_unmodified_since=None, destination_if_match=None, destination_if_none_match=None, destination_lease_id=None, source_lease_id=None, timeout=None, requires_sync=None, standard_blob_tier=None, rehydrate_priority=None)

参数

container_name
str
必需
blob_name
必需
copy_source
必需
metadata
默认值: None
source_if_modified_since
默认值: None
source_if_unmodified_since
默认值: None
source_if_match
默认值: None
source_if_none_match
默认值: None
destination_if_modified_since
默认值: None
destination_if_unmodified_since
默认值: None
destination_if_match
默认值: None
destination_if_none_match
默认值: None
destination_lease_id
默认值: None
source_lease_id
默认值: None
timeout
默认值: None
requires_sync
默认值: None
standard_blob_tier
默认值: None
rehydrate_priority
默认值: None

create_blob_from_bytes

使用自动分块和进度通知从字节数组创建新的 Blob,或更新现有 Blob 的内容。

create_blob_from_bytes(container_name, blob_name, blob, index=0, count=None, content_settings=None, metadata=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, standard_blob_tier=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

要创建或更新的 Blob 的名称。

blob
bytes
必需

Blob 的内容作为字节数组。

index
int
默认值: 0

开始字节数组中的索引。

count
int
默认值: None

要上传的字节数。 设置为“无”或“负值”,以上传从索引开始的所有字节。

content_settings
ContentSettings
默认值: None

用于设置 Blob 属性的 ContentSettings 对象。

metadata
dict(str, str)
默认值: None

作为元数据、与 Blob 关联的名称-值对。

validate_content
bool
默认值: False

如果为 true,则计算 blob 的每个区块的 MD5 哈希。 存储服务会检查已随发送的哈希一起到达的内容的哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,此 MD5 哈希值不与 Blob 一起存储。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

使用签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而 total 是 blob 的大小;如果总大小未知,则为 None。

max_connections
int
默认值: 2

Blob 大小超过 64MB 时要使用的最大并行连接数。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

standard_blob_tier
StandardBlobTier
默认值: None

要将 Blob 设置为的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。

返回

块 Blob 的 ETag 和上次修改的属性

返回类型

create_blob_from_path

使用自动分块和进度通知从文件路径创建新的 Blob,或更新现有 Blob 的内容。

create_blob_from_path(container_name, blob_name, file_path, content_settings=None, metadata=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, standard_blob_tier=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

要创建或更新的 Blob 的名称。

file_path
str
必需

要作为 Blob 内容上传的文件的路径。

content_settings
ContentSettings
默认值: None

用于设置 Blob 属性的 ContentSettings 对象。

metadata
dict(str, str)
默认值: None

作为元数据、与 Blob 关联的名称-值对。

validate_content
bool
默认值: False

如果为 true,则计算 blob 的每个区块的 MD5 哈希。 存储服务会检查已随发送的哈希一起到达的内容的哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,此 MD5 哈希值不与 Blob 一起存储。 另请注意,如果启用,将不会使用内存高效上传算法,因为计算 MD5 哈希需要缓冲整个块,这样做会破坏内存高效算法的用途。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

使用签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而 total 是 blob 的大小;如果总大小未知,则为 None。

max_connections
int
默认值: 2

Blob 大小超过 64MB 时要使用的最大并行连接数。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

standard_blob_tier
StandardBlobTier
默认值: None

要将 Blob 设置为的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。

返回

块 Blob 的 ETag 和上次修改的属性

返回类型

create_blob_from_stream

使用自动分块和进度通知从文件/流创建新的 Blob,或更新现有 Blob 的内容。

create_blob_from_stream(container_name, blob_name, stream, count=None, content_settings=None, metadata=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, use_byte_buffer=False, standard_blob_tier=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

要创建或更新的 Blob 的名称。

stream
IOBase
必需

已打开要上传为 Blob 内容的文件/流。

count
int
默认值: None

要从流中读取的字节数。 这是可选的,但为了获得最佳性能,应提供此选项。

content_settings
ContentSettings
默认值: None

用于设置 Blob 属性的 ContentSettings 对象。

metadata
dict(str, str)
默认值: None

作为元数据、与 Blob 关联的名称-值对。

validate_content
bool
默认值: False

如果为 true,则计算 blob 的每个区块的 MD5 哈希。 存储服务会检查已随发送的哈希一起到达的内容的哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,此 MD5 哈希值不与 Blob 一起存储。 另请注意,如果启用,将不会使用内存高效上传算法,因为计算 MD5 哈希需要缓冲整个块,这样做会破坏内存高效算法的用途。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

使用签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而 total 是 blob 的大小;如果总大小未知,则为 None。

max_connections
int
默认值: 2

Blob 大小超过 64MB 时要使用的最大并行连接数。 请注意,并行上传需要可查找流。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

use_byte_buffer
bool
默认值: False

如果为 True,则会强制使用原始的完整块缓冲上传路径。 默认情况下,此值为 False,在以下条件下将采用内存高效、流式上传算法:提供的流可查找,“require_encryption”为 False,MAX_BLOCK_SIZE >= MIN_LARGE_BLOCK_UPLOAD_THRESHOLD。 应考虑使用此方法的缺点。 为了实现内存效率,使用 SubStream 包装器将 IOBase 流或类似文件的对象分段为逻辑块。 为了读取正确的数据,每个 SubStream 必须获取一个锁,以便它可以安全地在共享的基础流上查找正确的位置。 如果max_connections > 1,则并发将导致对基础流进行大量查找。 对于最常见的输入(如类似文件的流对象),查找是一种成本低廉的操作,这并不是什么问题。 但是,对于流的其他变体,情况可能并非如此。 必须权衡内存效率与使用输入流进行查找的成本权衡。 SubStream 类将尝试在内部缓冲最多 4 MB,以减少对基础流的查找和读取调用量。 这在上传较大的块时特别有用。

standard_blob_tier
StandardBlobTier
默认值: None

要将 Blob 设置为的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。

返回

块 Blob 的 ETag 和上次修改的属性

返回类型

create_blob_from_text

通过 str/unicode 创建新 blob,或使用自动分块和进度通知更新现有 Blob 的内容。

create_blob_from_text(container_name, blob_name, text, encoding='utf-8', content_settings=None, metadata=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, standard_blob_tier=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

要创建或更新的 Blob 的名称。

text
str
必需

要上传到 Blob 的文本。

encoding
str
默认值: utf-8

用于将文本转换为字节的 Python 编码。

content_settings
ContentSettings
默认值: None

用于设置 Blob 属性的 ContentSettings 对象。

metadata
dict(str, str)
默认值: None

作为元数据、与 Blob 关联的名称-值对。

validate_content
bool
默认值: False

如果为 true,则计算 blob 的每个区块的 MD5 哈希。 存储服务会检查已随发送的哈希一起到达的内容的哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,此 MD5 哈希值不与 Blob 一起存储。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

使用签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而 total 是 blob 的大小;如果总大小未知,则为 None。

max_connections
int
默认值: 2

Blob 大小超过 64MB 时要使用的最大并行连接数。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

standard_blob_tier
StandardBlobTier
默认值: None

要设置 Blob 的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。

返回

块 Blob 的 ETag 和上次修改的属性

返回类型

create_container

在指定的帐户下创建新容器。 如果已存在同名的容器,则如果fail_on_exist为 True,则操作将失败。

create_container(container_name, metadata=None, public_access=None, fail_on_exist=False, timeout=None)

参数

container_name
str
必需

要创建的容器的名称。 容器名称只能包含小写字母、数字和连字符,并且必须以字母或数字开头。 每个连字符的前后必须为非连字符字符。 名称的长度还必须介于 3 到 63 个字符之间。

metadata
dict(str, str)
默认值: None

包含name_value对的 dict,这些对作为元数据与容器相关联。 示例:{'Category':'test'}

public_access
PublicAccess
默认值: None

可能的值包括:container、blob。

fail_on_exist
bool
默认值: False

指定在容器存在时是否引发异常。

timeout
int
默认值: None

超时参数以秒表示。

返回

如果已创建容器,则为 True;如果容器已存在,则为 False。

返回类型

delete_blob

标记要删除的指定 blob 或快照。 该 Blob 将在稍后的垃圾回收期间删除。

请注意,要删除 Blob,必须删除其所有快照。 可以使用“删除 Blob”操作同时删除这两者。

如果为服务启用了删除保留策略,则此操作将软删除 blob 或 快照并将 blob 或快照保留指定的天数。 在指定的天数后,Blob 的数据在垃圾回收期间会从服务中删除。 软删除的 blob 或快照可通过指定 include=Include.Deleted 选项的列表 Blob API 进行访问。 可以使用撤消删除 API 还原软删除的 blob 或快照。

delete_blob(container_name, blob_name, snapshot=None, lease_id=None, delete_snapshots=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要删除的 blob 快照。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

delete_snapshots
DeleteSnapshot
默认值: None

如果 Blob 有关联快照,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

timeout
int
默认值: None

超时参数以秒表示。

delete_container

标记要删除的指定容器。 在稍后的垃圾回收期间,将删除该容器及其包含的任何 Blob。

delete_container(container_name, fail_not_exist=False, lease_id=None, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

要删除的容器的名称。

fail_not_exist
bool
默认值: False

指定在容器不存在时是否引发异常。

lease_id
str
默认值: None

如果指定,则仅当容器的租约处于活动状态且与此 ID 匹配时,delete_container才会成功。 如果容器具有活动租约,则为必需。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

返回

如此 如果容器被删除,假容器不存在。

返回类型

exists

如果 blob_name 为 None) ,则返回一个布尔值,该值指示容器是否存在 (,否则返回一个指示 blob 是否存在的布尔值。

exists(container_name, blob_name=None, snapshot=None, timeout=None)

参数

container_name
str
必需

容器的名称。

blob_name
str
默认值: None

Blob 的名称。 如果为 None,则将检查容器是否存在。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定快照。

timeout
int
默认值: None

超时参数以秒表示。

返回

一个布尔值,指示资源是否存在。

返回类型

extract_date_and_request_id

static extract_date_and_request_id(retry_context)

参数

retry_context
必需

generate_account_shared_access_signature

为 Blob 服务生成共享访问签名。 将返回的签名与任何 BlobService 的 sas_token 参数一起使用。

generate_account_shared_access_signature(resource_types, permission, expiry, start=None, ip=None, protocol=None)

参数

resource_types
<xref:ResourceTypes>
必需

指定可通过帐户 SAS 访问的资源类型。

permission
<xref:AccountPermissions>
必需

与共享访问签名关联的权限。 用户只能执行权限允许的操作。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。

expiry
datetimestr
必需

共享访问签名失效的时间。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。 Azure 始终会将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。

start
datetimestr
默认值: None

共享访问签名生效的时间。 如果省略,将假定此调用的开始时间就是存储服务收到请求的时间。 Azure 始终会将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。

ip
str
默认值: None

指定要从中接受请求的 IP 地址或 IP 地址范围。 如果请求源自的 IP 地址与 SAS 令牌上指定的 IP 地址或地址范围不匹配,则不会对请求进行身份验证。 例如,在 SAS 上指定 sip=168.1.5.65 或 sip=168.1.5.60-168.1.5.70 会将请求限制为这些 IP 地址。

protocol
str
默认值: None

指定允许发出的请求的协议。 默认值为 https,http。 有关可能的值,请参阅Protocol

返回

共享访问签名 (sas) 令牌。

返回类型

str

generate_blob_shared_access_signature

为 Blob 或其快照之一生成共享访问签名。 将返回的签名与任何 BlobService 的 sas_token 参数一起使用。

generate_blob_shared_access_signature(container_name, blob_name, snapshot=None, permission=None, expiry=None, start=None, id=None, ip=None, protocol=None, cache_control=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None, user_delegation_key=None)

参数

container_name
str
必需

容器的名称。

blob_name
str
必需

Blob 的名称。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要授予权限的 blob 快照。

permission
BlobPermissions
默认值: None

与共享访问签名关联的权限。 用户只能执行权限允许的操作。 权限必须是对读取、写入、删除、列表进行排序。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。

expiry
datetimestr
默认值: None

共享访问签名变为无效的时间。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。

start
datetimestr
默认值: None

共享访问签名生效的时间。 如果省略,将假定此调用的开始时间就是存储服务收到请求的时间。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。

id
str
默认值: None

一个唯一值,长度最多为 64 个字符,与存储访问策略相关。 若要创建存储访问策略,请使用 set_container_acl

ip
str
默认值: None

指定从中接受请求的 IP 地址或 IP 地址范围。 如果请求源自的 IP 地址与 SAS 令牌上指定的 IP 地址或地址范围不匹配,则不会对请求进行身份验证。 例如,在 SAS 上指定 sip=168.1.5.65 或 sip=168.1.5.60-168.1.5.70 会将请求限制为这些 IP 地址。

protocol
str
默认值: None

指定允许发出的请求的协议。 默认值为 https,http。 有关可能的值,请参阅Protocol

cache_control
str
默认值: None

使用此共享访问签名访问资源时 Cache-Control 的响应标头值。

content_disposition
str
默认值: None

使用此共享访问签名访问资源时的内容处置的响应标头值。

content_encoding
str
默认值: None

使用此共享访问签名访问资源时的内容编码的响应标头值。

content_language
str
默认值: None

使用此共享访问签名访问资源时的内容语言的响应标头值。

content_type
str
默认值: None

使用此共享访问签名访问资源时 Content-Type 的响应标头值。

user_delegation_key
UserDelegationKey
默认值: None

用户可以传入用户委派密钥,而不是帐户密钥。 可以通过使用 AAD 标识进行身份验证,从服务获取用户委派密钥;这可以通过调用 get_user_delegation_key 来实现。 如果存在,则使用用户委派密钥对 SAS 进行签名。

返回

共享访问签名 (sas) 令牌。

返回类型

str

generate_container_shared_access_signature

为容器生成共享访问签名。 将返回的签名与任何 BlobService 的 sas_token 参数一起使用。

generate_container_shared_access_signature(container_name, permission=None, expiry=None, start=None, id=None, ip=None, protocol=None, cache_control=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None, user_delegation_key=None)

参数

container_name
str
必需

容器的名称。

permission
ContainerPermissions
默认值: None

与共享访问签名关联的权限。 用户只能执行权限允许的操作。 权限必须是对读取、写入、删除、列表进行排序。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。

expiry
datetimestr
默认值: None

共享访问签名变为无效的时间。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。

start
datetimestr
默认值: None

共享访问签名生效的时间。 如果省略,将假定此调用的开始时间就是存储服务收到请求的时间。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。

id
str
默认值: None

一个唯一值,长度最多为 64 个字符,与存储访问策略相关。 若要创建存储访问策略,请使用 set_blob_service_properties。

ip
str
默认值: None

指定从中接受请求的 IP 地址或 IP 地址范围。 如果请求源自的 IP 地址与 SAS 令牌上指定的 IP 地址或地址范围不匹配,则不会对请求进行身份验证。 例如,在 SAS 上指定 sip=168.1.5.65 或 sip=168.1.5.60-168.1.5.70 会将请求限制为这些 IP 地址。

protocol
str
默认值: None

指定允许发出的请求的协议。 默认值为 https,http。 有关可能的值,请参阅Protocol

cache_control
str
默认值: None

使用此共享访问签名访问资源时 Cache-Control 的响应标头值。

content_disposition
str
默认值: None

使用此共享访问签名访问资源时的内容处置的响应标头值。

content_encoding
str
默认值: None

使用此共享访问签名访问资源时的内容编码的响应标头值。

content_language
str
默认值: None

使用此共享访问签名访问资源时的内容语言的响应标头值。

content_type
str
默认值: None

使用此共享访问签名访问资源时 Content-Type 的响应标头值。

user_delegation_key
UserDelegationKey
默认值: None

用户可以传入用户委派密钥,而不是帐户密钥。 可以通过使用 AAD 标识进行身份验证,从服务获取用户委派密钥;这可以通过调用 get_user_delegation_key 来实现。 如果存在,则使用用户委派密钥对 SAS 进行签名。

返回

共享访问签名 (sas) 令牌。

返回类型

str

get_blob_account_information

获取与存储帐户相关的信息。 如果用户具有对容器或 Blob 的 SAS,也可以检索该信息。

get_blob_account_information(container_name=None, blob_name=None, timeout=None)

参数

container_name
str
默认值: None

现有容器的名称。 可选,除非将 SAS 令牌用于特定容器或 Blob,在这种情况下,需要它。

blob_name
str
默认值: None

现有 Blob 的名称。 可选,除非将 SAS 令牌用于特定 Blob,在这种情况下需要它。

timeout
int
默认值: None

超时参数以秒表示。

返回

AccountInformation

get_blob_metadata

返回指定 blob 或快照的所有用户定义的元数据。

get_blob_metadata(container_name, blob_name, snapshot=None, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

snapshot
str
默认值: None

快照 参数是一个不透明值,如果存在,则指定要检索的 blob 快照。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

返回

表示 Blob 元数据名称、值对的字典。

返回类型

get_blob_properties

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

get_blob_properties(container_name, blob_name, snapshot=None, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要检索的 blob 快照。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

返回

包含属性和元数据的 Blob 对象。

返回类型

get_blob_service_properties

获取存储帐户的 Blob 服务的属性,包括 Azure 存储分析。

get_blob_service_properties(timeout=None)

参数

timeout
int
默认值: None

超时参数以秒表示。

返回

具有附加target_version属性的 Blob ServiceProperties

get_blob_service_stats

检索与 Blob 服务的复制有关的统计信息。 仅当为存储帐户启用了读取访问异地冗余复制时,它才可用。

通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 主要位置存在于你通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时选择的区域。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。

get_blob_service_stats(timeout=None)

参数

timeout
int
默认值: None

超时参数以秒表示。

返回

Blob 服务统计信息。

返回类型

get_blob_to_bytes

将 Blob 下载为字节数组,其中包含自动分块和进度通知。 返回具有属性、元数据和内容的 实例 Blob

get_blob_to_bytes(container_name, blob_name, snapshot=None, start_range=None, end_range=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要检索的 blob 快照。

start_range
int
默认值: None

用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。

end_range
int
默认值: None

用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。

validate_content
bool
默认值: False

如果设置为 true,则验证 Blob 的每个检索部分的 MD5 哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,该服务将仅返回 4MB 或更小的区块的事务 MD5,因此第一个获取请求的大小为自身。MAX_CHUNK_GET_SIZE而不是自我。MAX_SINGLE_GET_SIZE。 如果为 self。MAX_CHUNK_GET_SIZE设置为大于 4MB,将引发错误。 由于计算 MD5 需要处理时间,并且由于区块大小减小,需要执行更多请求,延迟可能会有所增加。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而总计是 blob 的大小(如果已知)。

max_connections
int
默认值: 2

如果设置为 2 或更大,则将为第一个自身完成初始获取。MAX_SINGLE_GET_SIZE blob 的字节。 如果这是整个 Blob,则 方法此时返回。 如果不是,它将使用等于max_connections的线程数并行下载剩余数据。 每个区块的大小均为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵或不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,因为如果max_connections大于 1,则需要对空 blob 执行额外的请求,这也可能很有用。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

返回

具有属性和元数据的 Blob。 如果max_connections大于 1,则不会返回对 blob) 设置content_md5 (。 如果需要此值,请使用 get_blob_properties 或将 max_connections 设置为 1。

返回类型

get_blob_to_path

使用自动分块和进度通知将 Blob 下载到文件路径。 返回具有属性和元数据的 Blob 实例。

get_blob_to_path(container_name, blob_name, file_path, open_mode='wb', snapshot=None, start_range=None, end_range=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

file_path
str
必需

要写出到的文件的路径。

open_mode
str
默认值: wb

打开文件时要使用的模式。 请注意,仅指定追加open_mode会阻止并行下载。 因此,如果使用此open_mode,必须将max_connections设置为 1。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要检索的 blob 快照。

start_range
int
默认值: None

用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。

end_range
int
默认值: None

用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。

validate_content
bool
默认值: False

如果设置为 true,则验证 Blob 的每个检索部分的 MD5 哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,该服务将仅返回 4MB 或更小的区块的事务 MD5,因此第一个获取请求的大小为自身。MAX_CHUNK_GET_SIZE而不是自我。MAX_SINGLE_GET_SIZE。 如果为 self。MAX_CHUNK_GET_SIZE设置为大于 4MB,将引发错误。 由于计算 MD5 需要处理时间,并且由于区块大小减小,需要执行更多请求,延迟可能会有所增加。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而总计是 blob 的大小(如果已知)。

max_connections
int
默认值: 2

如果设置为 2 或更大,则将为第一个自身完成初始获取。MAX_SINGLE_GET_SIZE blob 的字节。 如果这是整个 Blob,则 方法此时返回。 如果不是,它将使用等于max_connections的线程数并行下载剩余数据。 每个区块的大小均为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵或不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,因为如果max_connections大于 1,则需要对空 blob 执行额外的请求,这也可能很有用。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

返回

具有属性和元数据的 Blob。 如果max_connections大于 1,则不会返回对 blob) 设置content_md5 (。 如果需要此值,请使用 get_blob_properties 或将 max_connections 设置为 1。

返回类型

get_blob_to_stream

使用自动分块和进度通知将 Blob 下载到流。 返回具有属性和元数据的 Blob 实例。

get_blob_to_stream(container_name, blob_name, stream, snapshot=None, start_range=None, end_range=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

stream
IOBase
必需

已打开要写入的流。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要检索的 blob 快照。

start_range
int
默认值: None

用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。

end_range
int
默认值: None

用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。

validate_content
bool
默认值: False

如果设置为 true,则验证 Blob 的每个检索部分的 MD5 哈希。 如果使用 http 而不是 https 作为 https,则这主要用于检测网络上的 bitflips, (默认) 已验证。 请注意,该服务将仅返回 4MB 或更小的区块的事务 MD5,因此第一个获取请求的大小为自身。MAX_CHUNK_GET_SIZE而不是自我。MAX_SINGLE_GET_SIZE。 如果为 self。MAX_CHUNK_GET_SIZE设置为大于 4MB,将引发错误。 由于计算 MD5 需要处理时间,并且由于区块大小减小,需要执行更多请求,延迟可能会有所增加。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而总计是 blob 的大小(如果已知)。

max_connections
int
默认值: 2

如果设置为 2 或更大,则将为第一个自身完成初始获取。MAX_SINGLE_GET_SIZE blob 的字节。 如果这是整个 Blob,则 方法此时返回。 如果不是,它将使用等于max_connections的线程数并行下载剩余数据。 每个区块的大小均为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵或不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,因为如果max_connections大于 1,则需要对空 blob 执行额外的请求,这也可能很有用。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

返回

具有属性和元数据的 Blob。 如果max_connections大于 1,则不会返回对 blob) 设置content_md5 (。 如果需要此值,请使用 get_blob_properties 或将 max_connections 设置为 1。

返回类型

get_blob_to_text

以 unicode 文本的形式下载 Blob,并自动进行分块和进度通知。 返回具有属性、元数据和内容的 实例 Blob

get_blob_to_text(container_name, blob_name, encoding='utf-8', snapshot=None, start_range=None, end_range=None, validate_content=False, progress_callback=None, max_connections=2, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

encoding
str
默认值: utf-8

解码 Blob 数据时要使用的 Python 编码。

snapshot
str
默认值: None

快照 参数是一个不透明的 DateTime 值,如果存在,则指定要检索的 blob 快照。

start_range
int
默认值: None

要用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包含的。 例如:start_range=0,end_range=511 将下载前 512 个字节的 blob。

end_range
int
默认值: None

用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包含的。 例如:start_range=0,end_range=511 将下载前 512 个字节的 blob。

validate_content
bool
默认值: False

如果设置为 true,则验证 Blob 的每个检索部分的 MD5 哈希。 如果使用 http 而不是 https 作为 https, (默认) 已验证,则这主要用于检测网络上的 bitflips。 请注意,该服务将仅返回 4MB 或更小区块的事务 MD5,因此第一个获取请求的大小为自身。MAX_CHUNK_GET_SIZE而不是自我。MAX_SINGLE_GET_SIZE。 如果为 self。MAX_CHUNK_GET_SIZE设置为大于 4MB,将引发错误。 由于计算 MD5 需要处理时间,并且由于区块大小减小,需要完成更多请求,延迟可能会有所增加。

progress_callback
<xref:func>(<xref:current>, <xref:total>)
默认值: None

使用签名函数 (当前总) 的进度回调,其中 current 是到目前为止传输的字节数,total 是 Blob 的大小(如果已知)。

max_connections
int
默认值: 2

如果设置为 2 或更大,则将为第一个自身执行初始获取。blob 的MAX_SINGLE_GET_SIZE字节。 如果这是整个 Blob,则方法此时返回 。 否则,它将使用等于 max_connections 的线程数并行下载剩余数据。 每个区块的大小为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵,或者不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,这可能也很有用,因为如果max_connections大于 1,空 blob 需要额外的请求。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥解密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

返回

具有属性和元数据的 Blob。 如果max_connections大于 1,则不会返回在 blob) 上设置的content_md5 (。 如果需要此值,请使用 get_blob_properties 或将 max_connections 设置为 1。

返回类型

get_block_list

检索作为块 Blob 一部分上载的块的列表。 为 Blob 保留了两个块列表:

已提交的块列表:已成功提交到具有放置块列表的给定 blob 的块列表。

未提交的块列表:已使用放置块为 Blob 上传但尚未提交的块列表。 这些块存储在 Azure 中并与 Blob 关联,但尚未构成 Blob 的一部分。

get_block_list(container_name, blob_name, snapshot=None, block_list_type=None, lease_id=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

snapshot
str
默认值: None

日期/时间,用于确定检索块的时间。

block_list_type
str
默认值: None

指定是返回已提交的块列表,返回未提交的块列表,还是同时返回这两个列表。 有效值为:committed、uncommitted 或 all。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

timeout
int
默认值: None

超时参数以秒表示。

返回

列出块 Blob 的已提交和/或未提交的块

返回类型

get_container_acl

获取指定容器的权限。 这些权限指示是否可以公开访问容器数据。

get_container_acl(container_name, lease_id=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_id
默认值: None

如果指定,则仅当容器的租约处于活动状态且与此 ID 匹配时,get_container_acl才会成功。

timeout
int
默认值: None

超时参数以秒表示。

返回

与容器关联的访问策略字典。 如果打开公共访问,则为 str AccessPolicy 的 dict 和 public_access 属性

get_container_metadata

返回指定容器的所有用户定义元数据。

get_container_metadata(container_name, lease_id=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_id
str
默认值: None

如果指定,则仅当容器的租约处于活动状态并且与此 ID 匹配时,get_container_metadata才会成功。

timeout
int
默认值: None

超时参数以秒表示。

返回

表示容器元数据名称、值对的字典。

返回类型

get_container_properties

返回指定容器的所有用户定义元数据和系统属性。 返回的数据不包含该容器的 Blob 列表。

get_container_properties(container_name, lease_id=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_id
str
默认值: None

如果指定,则仅当容器的租约处于活动状态且与此 ID 匹配时,get_container_properties才会成功。

timeout
int
默认值: None

超时参数以秒表示。

返回

容器对象中指定容器的属性。

返回类型

get_user_delegation_key

获取用于对 SAS 令牌进行签名的用户委托密钥。 服务对象上必须存在令牌凭据,此请求才能成功。

get_user_delegation_key(key_start_time, key_expiry_time, timeout=None)

参数

key_start_time
datetime
必需

一个日期时间值。 指示密钥何时生效。

key_expiry_time
datetime
必需

一个日期时间值。 指示密钥何时停止有效。

timeout
int
默认值: None

超时参数以秒表示。

返回

用户委托密钥。

返回类型

list_blob_names

返回一个生成器,用于列出指定容器下的 Blob 名称。 生成器将延迟跟踪服务返回的继续标记,并在返回所有 blob 或到达num_results时停止。

如果指定了num_results,并且帐户的 blob 数超过该数目,则生成器将在完成时具有填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。

list_blob_names(container_name, prefix=None, num_results=None, include=None, delimiter=None, marker=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

prefix
str
默认值: None

筛选结果以便仅返回名称以指定前缀开头的 Blob。

num_results
int
默认值: None

指定要返回的 Blob(包括所有 <xref:azure.storage.blob.blockblobservice.BlobPrefix> 元素)的最大数量。 如果请求未指定num_results或指定的值大于 5,000,则服务器将返回最多 5,000 个项。 将num_results设置为小于或等于零的值会导致错误响应代码 400 (错误的请求) 。

include
Include
默认值: None

指定要包含在响应中的一个或多个其他数据集。

delimiter
str
默认值: None

当请求包含此参数时,操作在结果列表中返回一个 BlobPrefix 元素,该元素充当所有 blob 的占位符,其名称以同一子字符串开头,一直以分隔符字符的外观开头。 分隔符可以是单个字符或字符串。

marker
str
默认值: None

不透明的继续标记。 如果指定了num_results并且该生成器已完成枚举结果,则可以从以前的生成器对象的next_marker字段中检索此值。 如果指定,此生成器将开始从上一个生成器停止的点返回结果。

timeout
int
默认值: None

超时参数以秒表示。

list_blobs

返回一个生成器,用于列出指定容器下的 Blob。 生成器将延迟跟踪服务返回的继续标记,并在返回所有 blob 或到达num_results时停止。

如果指定了num_results,并且帐户的 blob 数超过该数目,则生成器将在完成时具有填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。

list_blobs(container_name, prefix=None, num_results=None, include=None, delimiter=None, marker=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

prefix
str
默认值: None

筛选结果以便仅返回名称以指定前缀开头的 Blob。

num_results
int
默认值: None

指定要返回的 Blob(包括所有 <xref:azure.storage.blob.blockblobservice.BlobPrefix> 元素)的最大数量。 如果请求未指定num_results或指定的值大于 5,000,则服务器将返回最多 5,000 个项。 将num_results设置为小于或等于零的值会导致错误响应代码 400 (错误的请求) 。

include
Include
默认值: None

指定要包含在响应中的一个或多个其他数据集。

delimiter
str
默认值: None

当请求包含此参数时,操作在结果列表中返回一个 BlobPrefix 元素,该元素充当所有 blob 的占位符,其名称以同一子字符串开头,一直以分隔符字符的外观开头。 分隔符可以是单个字符或字符串。

marker
str
默认值: None

不透明的继续标记。 如果指定了num_results并且该生成器已完成枚举结果,则可以从以前的生成器对象的next_marker字段中检索此值。 如果指定,此生成器将开始从上一个生成器停止的点返回结果。

timeout
int
默认值: None

超时参数以秒表示。

list_containers

返回一个生成器,以列出指定帐户下的容器。 生成器将延迟遵循服务返回的继续标记,并在返回所有容器或到达num_results时停止。

如果指定了num_results,并且帐户的容器数超过该数目,则生成器在完成时将具有填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。

list_containers(prefix=None, num_results=None, include_metadata=False, marker=None, timeout=None)

参数

prefix
str
默认值: None

筛选结果以仅返回名称以指定前缀开头的容器。

num_results
int
默认值: None

指定要返回的最大容器数。 单个列表请求最多可以返回 1000 个 contianers,并可能返回一个继续令牌,应遵循该令牌来获取额外的资源。

include_metadata
bool
默认值: False

指定在响应中返回容器元数据。

marker
str
默认值: None

不透明的继续标记。 如果指定了num_results并且该生成器已完成枚举结果,则可以从以前的生成器对象的next_marker字段中检索此值。 如果指定,此生成器将开始从上一个生成器停止的点返回结果。

timeout
int
默认值: None

超时参数以秒表示。

make_blob_url

创建 URL 以访问 Blob。

make_blob_url(container_name, blob_name, protocol=None, sas_token=None, snapshot=None)

参数

container_name
str
必需

容器的名称。

blob_name
str
必需

Blob 的名称。

protocol
str
默认值: None

要使用的协议:“http”或“https”。 如果未指定,则使用初始化 BaseBlobService 时指定的协议。

sas_token
str
默认值: None

使用 generate_shared_access_signature 创建的共享访问签名令牌。

snapshot
str
默认值: None

唯一标识快照的字符串值。 此查询参数的值指示快照版本。

返回

Blob 访问 URL。

返回类型

str

make_container_url

创建 URL 以访问容器。

make_container_url(container_name, protocol=None, sas_token=None)

参数

container_name
str
必需

容器的名称。

protocol
str
默认值: None

要使用的协议:“http”或“https”。 如果未指定,则使用初始化 BaseBlobService 时指定的协议。

sas_token
str
默认值: None

使用 generate_shared_access_signature 创建的共享访问签名令牌。

返回

容器访问 URL。

返回类型

str

put_block

创建一个要作为 Blob 组成部分提交的新块。

put_block(container_name, blob_name, block, block_id, validate_content=False, lease_id=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

Blob 的名称。

block
IOBase 或 <xref:<xref:bytes Content> of <xref:the block.>>
必需

块的内容。

block_id
str
必需

标识块的字符串值。 字符串的大小应小于或等于 64 个字节。 对于给定的 Blob,每个块的block_id大小必须相同。

validate_content
bool
默认值: False

如果为 true,则计算块内容的 MD5 哈希。 存储服务会检查随发送的哈希一起到达的内容的哈希。 如果使用 http 而不是 https 作为 https, (默认) 已验证,则这主要用于检测网络上的 bitflips。 请注意,此 MD5 哈希值不与 Blob 一起存储。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

put_block_from_url

创建一个要作为 Blob 组成部分提交的新块。

put_block_from_url(container_name, blob_name, copy_source_url, block_id, source_range_start=None, source_range_end=None, source_content_md5=None, lease_id=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

Blob 的名称。

copy_source_url
str
必需

源数据的 URL。 它可以指向公共或附加共享访问签名的任何 Azure Blob 或文件。

source_range_start
int
默认值: None

这表示必须从复制源获取 (包含) 的字节范围的开始。

source_range_end
int
默认值: None

这表示必须从复制源获取的字节范围 (非独占) 结束。

block_id
str
必需

标识块的字符串值。 字符串的大小应小于或等于 64 个字节。 对于给定的 Blob,每个块的block_id大小必须相同。

source_content_md5
str
默认值: None

如果给定,服务将计算块内容的 MD5 哈希,并将其与此值进行比较。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

put_block_list

通过指定组成 Blob 的块 ID 列表编写 Blob。 为了作为 Blob 的一部分写入,块必须在之前的 Put Block 操作中成功写入服务器。

可以调用 Put Block List 来更新 Blob,方法是仅上传已更改的块,然后将新的块和现有块一起提交。 为此,请指定是从提交的块列表或未提交的块列表提交块,还是提交块的最近上载版本,无论块可能属于哪个列表。

put_block_list(container_name, blob_name, block_list, content_settings=None, metadata=None, validate_content=False, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, standard_blob_tier=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

block_list
list(BlobBlock)
必需

包含块 ID 和块状态的列表 <xref:azure.storeage.blob.models.BlobBlock> 。

content_settings
ContentSettings
默认值: None

用于在 Blob 上设置属性的 ContentSettings 对象。

metadata
dict(str, str)
默认值: None

作为元数据、与 Blob 关联的名称-值对。

validate_content
bool
默认值: False

如果为 true,则计算块列表内容的 MD5 哈希。 存储服务检查已随发送的哈希一起到达的块列表内容的哈希。 如果使用 http 而不是 https 作为 https, (默认) 已验证,则这主要用于检测网络上的 bitflips。 请注意,此检查与阻止列表内容相关联,而不是与 Blob 本身的内容相关联。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

standard_blob_tier
StandardBlobTier
默认值: None

要设置 Blob 的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。

返回

更新的块 Blob 的 ETag 和上次修改的属性

返回类型

release_blob_lease

释放租约。 如果在请求中指定的租约 ID 与 Blob 的关联租约 ID 匹配,则可以释放租约。 通过释放租约,其他客户端可以在释放完成后立即获取 Blob 的租约。

release_blob_lease(container_name, blob_name, lease_id, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

lease_id
str
必需

活动租约的租约 ID。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

timeout
int
默认值: None

超时参数以秒表示。

release_container_lease

释放租约。 如果指定的lease_id与容器关联的匹配,则可能会释放租约。 通过释放租约,其他客户端可以在释放完成时立即获取该容器的租约。

release_container_lease(container_name, lease_id, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_id
str
必需

活动租约的租约 ID。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

renew_blob_lease

续订租约。 如果在请求中指定的租约 ID 与 Blob 的关联租约 ID 匹配,则可以续订租约。 请注意,即使租约已过期,但只要在该租约过期后未修改或再次租用 Blob,就可以续订租约。 在续订租约时,将重置租约持续时间时钟。

renew_blob_lease(container_name, blob_name, lease_id, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

lease_id
str
必需

活动租约的租约 ID。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

timeout
int
默认值: None

超时参数以秒表示。

返回

str

renew_container_lease

续订租约。 如果指定的租约 ID 与容器关联的 ID 匹配,则可以续订租约。 请注意,只要自租约过期以来尚没有再次租用容器,即使租约已过期,也可以对其进行续订。 在续订租约时,将重置租约持续时间时钟。

renew_container_lease(container_name, lease_id, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

lease_id
str
必需

活动租约的租约 ID。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

返回

str

set_blob_metadata

将特定 blob 的用户定义元数据设置为一个或多个名称/值对。

set_blob_metadata(container_name, blob_name, metadata=None, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

metadata
dict(str, str)
默认值: None

包含名称和值对的 Dict。 每次调用此操作都会替换附加到该 Blob 的所有现有元数据。 要从该 Blob 中删除所有元数据,请不带任何元数据头调用此操作。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

返回

更新的 Blob 的 ETag 和上次修改的属性

返回类型

set_blob_properties

在 blob 上设置系统属性。 如果为content_settings设置了一个属性,则将重写所有属性。

set_blob_properties(container_name, blob_name, content_settings=None, lease_id=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

content_settings
ContentSettings
默认值: None

用于设置 Blob 属性的 ContentSettings 对象。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

返回

更新的 Blob 的 ETag 和上次修改的属性

返回类型

set_blob_service_properties

设置存储帐户的 Blob 服务的属性,包括 Azure 存储分析。 如果前 Logging) (元素保留为 None,则保留该服务上该功能的现有设置。

set_blob_service_properties(logging=None, hour_metrics=None, minute_metrics=None, cors=None, target_version=None, timeout=None, delete_retention_policy=None, static_website=None)

参数

logging
Logging
默认值: None

对 Azure Analytics Logging 设置进行分组。

hour_metrics
Metrics
默认值: None

小时指标设置提供请求统计信息的摘要,这些统计信息按 API 按 Blob 的每小时聚合进行分组。

minute_metrics
Metrics
默认值: None

分钟指标设置提供 Blob 每分钟的请求统计信息。

cors
list(CorsRule)
默认值: None

列表中最多可以包含五个 CorsRule 元素。 如果指定了空列表,则将删除所有 CORS 规则,并且将禁用该服务的 CORS。

target_version
str
默认值: None

指示如果未指定传入请求的版本,则用于请求的默认版本。

timeout
int
默认值: None

超时参数以秒表示。

delete_retention_policy
DeleteRetentionPolicy
默认值: None

删除保留策略指定是否保留已删除的 Blob。 它还指定要保留的 Blob 的天数和版本。

static_website
StaticWebsite
默认值: None

指定是否启用静态网站功能,如果是,则指示要使用的索引文档和 404 错误文档。

set_container_acl

设置可能与共享访问签名一起使用的指定容器或存储访问策略的权限。 这些权限指示是否可以公开访问容器中的 Blob。

set_container_acl(container_name, signed_identifiers=None, public_access=None, lease_id=None, if_modified_since=None, if_unmodified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

signed_identifiers
dict(str, AccessPolicy)
默认值: None

要与容器关联的访问策略字典。 字典最多可以包含 5 个元素。 空字典将清除在服务上设置的访问策略。

public_access
PublicAccess
默认值: None

可能的值包括:container、blob。

lease_id
str
默认值: None

如果指定,set_container_acl仅当容器的租约处于活动状态且与此 ID 匹配时才会成功。

if_modified_since
datetime
默认值: None

日期/时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头以仅当资源自指定日期/时间以来已修改时才执行操作。

if_unmodified_since
datetime
默认值: None

日期/时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

返回

更新的容器的 ETag 和上次修改的属性

返回类型

set_container_metadata

为指定的容器设置一个或多个用户定义的名称-值对。 每次调用此操作时,将替换与容器关联的所有现有的元数据。 若要从容器中删除所有元数据,请调用此操作,不带元数据听写。

set_container_metadata(container_name, metadata=None, lease_id=None, if_modified_since=None, timeout=None)

参数

container_name
str
必需

现有容器的名称。

metadata
dict(str, str)
默认值: None

包含要作为元数据与容器关联的名称/值对的 dict。 示例:{'category':'test'}

lease_id
str
默认值: None

如果指定,set_container_metadata仅当容器的租约处于活动状态且与此 ID 匹配时才会成功。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

timeout
int
默认值: None

超时参数以秒表示。

返回

更新的容器的 ETag 和上次修改的属性

返回类型

set_proxy

设置 HTTP CONNECT 隧道的代理服务器主机和端口。

set_proxy(host, port, user=None, password=None)

参数

host
str
必需

代理的地址。 例如:'192.168.0.100'

port
int
必需

代理的端口。 例如:6000

user
str
默认值: None

代理授权的用户。

password
str
默认值: None

代理授权的密码。

set_standard_blob_tier

设置 Blob 上的块 Blob 层。 此 API 仅支持标准存储帐户上的块 Blob。

:p aram RehydratePriority rehydrate_priority:指示解除存档 blob 冻结的优先级

set_standard_blob_tier(container_name, blob_name, standard_blob_tier, timeout=None, rehydrate_priority=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

要更新的 Blob 的名称。

standard_blob_tier
StandardBlobTier
必需

要将 Blob 设置为的标准 Blob 层值。 对于此版本的库,这仅适用于标准存储帐户上的块 Blob。

timeout
int
默认值: None

超时参数以秒表示。 此方法可能会对 Azure 服务进行多次调用,超时将分别应用于每个调用。

rehydrate_priority
默认值: None

snapshot_blob

创建 Blob 的只读快照。

snapshot_blob(container_name, blob_name, metadata=None, if_modified_since=None, if_unmodified_since=None, if_match=None, if_none_match=None, lease_id=None, timeout=None, cpk=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

metadata
dict(str, str)
默认值: None

指定与 Blob 关联的用户定义的名称-值对。 如果未指定名称-值对,则此操作将基本 Blob 元数据复制到快照中。 如果指定了多个名称-值对,则使用指定的元数据创建快照,而不从基本 Blob 中复制元数据。

if_modified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。

if_unmodified_since
datetime
默认值: None

一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。

if_match
str
默认值: None

ETag 值或通配符 (*)。 指定此标头,以便仅在资源的 ETag 与指定的值匹配时才执行操作。

if_none_match
str
默认值: None

ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。

lease_id
str
默认值: None

如果 Blob 具有活动租约,则是必需的。

cpk
CustomerProvidedEncryptionKey
默认值: None

使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。

timeout
int
默认值: None

超时参数以秒表示。

返回

快照属性

返回类型

undelete_blob

取消删除 Blob 操作可还原软删除 blob 或快照的内容和元数据。 尝试取消删除未软删除的 blob 或快照将成功,而不会进行任何更改。

undelete_blob(container_name, blob_name, timeout=None)

参数

container_name
str
必需

现有容器的名称。

blob_name
str
必需

现有 Blob 的名称。

timeout
int
默认值: None

超时参数以秒表示。

属性

protocol

request_session

socket_timeout

MAX_BLOCK_SIZE

MAX_BLOCK_SIZE = 4194304

MAX_CHUNK_GET_SIZE

MAX_CHUNK_GET_SIZE = 4194304

MAX_SINGLE_GET_SIZE

MAX_SINGLE_GET_SIZE = 33554432

MAX_SINGLE_PUT_SIZE

MAX_SINGLE_PUT_SIZE = 67108864

MIN_LARGE_BLOCK_UPLOAD_THRESHOLD

MIN_LARGE_BLOCK_UPLOAD_THRESHOLD = 4194305