你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
BaseBlobService 类
这是管理 Blob 资源的main类。
Blob 服务将文本和二进制数据以 Blob 形式存储在云中。 BLOB 服务提供以下三种资源:存储帐户、容器和 Blob。 在存储帐户中,容器提供组织 Blob 集的方法。 有关详细信息,请参阅: https://msdn.microsoft.com/en-us/library/azure/ee691964.aspx
:type ~azure.storage.common.TokenCredential
- 继承
-
BaseBlobService
构造函数
BaseBlobService(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
存储帐户名称。 这用于对使用帐户密钥签名的请求进行身份验证,并构造存储终结点。 除非提供了连接字符串,或者自定义域与匿名身份验证一起使用,否则是必需的。
- sas_token
- str
用于对请求进行身份验证的共享访问签名令牌,而不是帐户密钥。 如果同时指定了帐户密钥和 sas 令牌,则将使用帐户密钥进行签名。 如果两者均未指定,则将使用匿名访问。
- endpoint_suffix
- str
URL 的主机基组件减去帐户名称。 默认为 Azure (core.windows.net) 。 重写此项以使用中国云 (core.chinacloudapi.cn) 。
- request_session
- <xref:requests.Session>
用于 http 请求的会话对象。
- connection_string
- str
如果指定,这将替代请求会话以外的所有其他参数。 有关连接字符串格式,请参阅http://azure.microsoft.com/en-us/documentation/articles/storage-configure-connection-string/
- socket_timeout
- int
如果指定,这将替代默认套接字超时。 指定的超时值以秒为单位。 有关默认值,请参阅 _constants.py 中的DEFAULT_SOCKET_TIMEOUT。
- token_credential
用于对 HTTPS 请求进行身份验证的令牌凭据。 令牌值应在过期之前更新。
变量
- MAX_SINGLE_GET_SIZE
- int
如果max_connections大于 1,则第一个范围的大小由 get_blob_to_* 方法执行。 如果 blob 小于此大小,则返回的数据将更少。
- MAX_CHUNK_GET_SIZE
- int
如果max_connections大于 1 且 blob 大于 MAX_SINGLE_GET_SIZE,则后续范围的大小由 get_blob_to_* 方法执行。 如果 blob 的其余部分小于此值,则返回的数据将更少。 如果此值设置为大于 4MB,content_validation将引发错误(如果启用)。 但是,如果不需要content_validation,则大于 4MB 的大小可能是最佳选择。 不建议将其设置为低于 4MB。
- key_encryption_key
- object
用户(可选)提供的 key-encryption-key。 如果提供, 将用于在支持的方法中加密/解密。 对于需要解密的方法,必须提供 key_encryption_key 或 冲突解决程序。 如果同时提供两者,则解析程序优先。 必须为需要加密的 API 实现以下方法:wrap_key (密钥) 使用用户选择的算法) 包装指定的密钥 (字节。 以字节形式返回加密密钥。 get_key_wrap_algorithm () – 返回用于包装指定对称密钥的算法。 get_kid () – 返回此密钥加密密钥的字符串密钥 ID。 必须为需要解密的 API 实现以下方法:unwrap_key (密钥、算法) - 使用字符串指定的算法返回指定对称密钥的未包装形式。 get_kid () – 返回此密钥加密密钥的字符串密钥 ID。
- key_resolver_function
- kid) (<xref:function>
用于解析用户(可选)提供的密钥的函数。 如果提供, 将用于在支持的方法中解密。 对于需要解密的方法,必须提供 key_encryption_key 或 冲突解决程序。 如果同时提供两者,则解析程序优先。 它使用子字符串返回实现上面定义的接口的 key-encryption-key。
- require_encryption
- bool
可以设置的标志,以确保成功上传到队列的所有消息以及从队列中下载和成功读取的所有消息在服务器上都已加密。 如果设置了此标志,则必须提供加密/解密所需的所有参数。 请参阅上述有关key_encryption_key和解析程序的注释。
方法
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 |
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。 此操作返回复制操作属性对象,包括可用于检查或中止复制操作的副本 ID。 BLOB 服务尽量复制 Blob。 复制操作的源 Blob 可以是块 Blob、追加 Blob 或页 Blob。 如果目标 Blob 已存在,该 Blob 的类型必须与源 Blob 的类型相同。 将覆盖任何现有的目标 Blob。 复制操作进行时不能修改目标 Blob。 从页 Blob 复制时,Blob 服务会创建源 Blob 长度的目标页 Blob,最初包含所有零。 然后枚举页面范围,复制非空范围。 对于块 Blob 或追加 Blob,Blob 服务会在从此操作返回之前创建长度为零的已提交 blob。 从块 Blob 复制时,将复制所有提交的块及其块 ID。 不会复制未提交的块。 复制操作结束时,目标 Blob 将具有与源相同的已提交块计数。 从追加 Blob 复制时,将复制所有提交的块。 复制操作结束时,目标 Blob 将具有与源相同的已提交块计数。 对于所有 Blob 类型,可以调用目标 blob 上的get_blob_properties来检查复制操作的状态。 完成复制时,将提交最终的 Blob。 |
create_container |
在指定的帐户下创建新容器。 如果已存在同名的容器,则如果fail_on_exist为 True,则操作将失败。 |
delete_blob |
标记要删除的指定 blob 或快照。 该 Blob 将在稍后的垃圾回收期间删除。 请注意,要删除 Blob,必须删除其所有快照。 可以使用删除 Blob 操作同时删除这两者。 如果为服务启用了删除保留策略,则此操作将软删除 blob 或快照,并将 blob 或快照保留指定的天数。 在指定的天数后,Blob 的数据在垃圾回收期间会从服务中删除。 可以通过指定 include=Include.Deleted 选项的列表 Blob API 访问软删除的 blob 或快照。 可以使用 Undelete 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 的内容。 返回 Blob 与 BlobProperties 和 元数据听写。 |
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 |
下载 blob 作为 unicode 文本,并带有自动分块和进度通知。 返回具有属性、元数据和内容的 实例 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 |
创建用于访问 Blob 的 URL。 |
make_container_url |
创建用于访问容器的 URL。 |
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 存储分析。 如果某个元素 (ex Logging) 保留为 None,则会保留该服务上针对该功能的现有设置。 |
set_container_acl |
为可能与共享访问签名一起使用的指定容器或存储访问策略设置权限。 这些权限指示是否可以公开访问容器中的 Blob。 |
set_container_metadata |
为指定的容器设置一个或多个用户定义的名称/值对。 每次调用此操作时,将替换与容器关联的所有现有的元数据。 若要从容器中删除所有元数据,请在不带元数据 dict 的情况下调用此操作。 |
set_proxy |
设置 HTTP CONNECT 隧道的代理服务器主机和端口。 |
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)
参数
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)
参数
- lease_duration
- int
指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。 默认值为 -1, (无限租约) 。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
返回
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)
参数
- lease_duration
- int
指定租约的持续时间(秒),或者指定 -1 以表示永不过期的租约。 有限期租约在 15 到 60 秒之间。 不能使用续订或更改来更改租约持续时间。 默认值为 -1, (无限租约) 。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
返回
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)
参数
返回
分析的批处理删除 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)
参数
- lease_break_period
- int
对于中断操作,这是租约在中断前应继续的建议秒持续时间,介于 0 到 60 秒之间。 只有在少于租约的剩余时间时,才能使用中断期。 如果超过租约的剩余时间,则使用租约的剩余时间。 在中断期到期之前,无法使用新租约,但可以将租约保留到超过中断期。 如果此标头未随中断操作一起出现,则固定持续时间的租约将在剩余租约期过后中断,无限租约将立即中断。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
返回
int
break_container_lease
如果容器具有活动租约,则中断租约。 在中断租约后,无法进行续订。 任何授权的请求都可以中断租约;请求不需要指定匹配的租约 ID。 中断租约时,允许租用中断期过,在此期间,除中断和释放外,不能对容器执行任何租用操作。 在租约成功中断后,响应指示可以获取新租约之前等待的时间间隔(秒)。
break_container_lease(container_name, lease_break_period=None, if_modified_since=None, if_unmodified_since=None, timeout=None)
参数
- lease_break_period
- int
这是租约在中断前应继续的建议秒持续时间,介于 0 到 60 秒之间。 只有在少于租约的剩余时间时,才能使用中断期。 如果超过租约的剩余时间,则使用租约的剩余时间。 在中断期到期之前,无法使用新租约,但可以将租约保留到超过中断期。 如果此标头未随中断操作一起出现,则固定持续时间的租约将在剩余租约期过后中断,无限租约将立即中断。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
返回
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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
copy_blob
异步复制 Blob。 此操作返回复制操作属性对象,包括可用于检查或中止复制操作的副本 ID。 BLOB 服务尽量复制 Blob。
复制操作的源 Blob 可以是块 Blob、追加 Blob 或页 Blob。 如果目标 Blob 已存在,该 Blob 的类型必须与源 Blob 的类型相同。 将覆盖任何现有的目标 Blob。 复制操作进行时不能修改目标 Blob。
从页 Blob 复制时,Blob 服务会创建源 Blob 长度的目标页 Blob,最初包含所有零。 然后枚举页面范围,复制非空范围。
对于块 Blob 或追加 Blob,Blob 服务会在从此操作返回之前创建长度为零的已提交 blob。 从块 Blob 复制时,将复制所有提交的块及其块 ID。 不会复制未提交的块。 复制操作结束时,目标 Blob 将具有与源相同的已提交块计数。
从追加 Blob 复制时,将复制所有提交的块。 复制操作结束时,目标 Blob 将具有与源相同的已提交块计数。
对于所有 Blob 类型,可以调用目标 blob 上的get_blob_properties来检查复制操作的状态。 完成复制时,将提交最终的 Blob。
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)
参数
- copy_source
- str
长度为 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
作为元数据、与 Blob 关联的名称-值对。 如果未指定名称/值对,则操作会将元数据从源 Blob 或文件复制到目标 Blob。 如果指定了一个或多个名称/值对,则使用指定的元数据创建目标 Blob,并且不会从源 Blob 或文件复制元数据。
- source_if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当源 Blob 自指定日期/时间后发生了修改时才复制 Blob。
- source_if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当源 Blob 自指定日期/时间后未修改时才复制 Blob。
- source_if_match
- <xref:ETag>
ETag 值或通配符 (*)。 如果指定此条件头,则仅当源 Blob 的 ETag 与指定的值匹配时才复制源 Blob。 如果 ETag 值不匹配,BLOB 服务将返回状态代码 412(不满足前提条件)。 如果源是 Azure 文件,则无法指定此标头。
- source_if_none_match
- <xref:ETag>
ETag 值或通配符 (*)。 如果指定此条件头,则仅当 Blob 的 ETag 与指定的值不匹配时才复制 Blob。 如果值相同,BLOB 服务将返回状态代码 412(不满足前提条件)。 如果源是 Azure 文件,则无法指定此标头。
- destination_if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当目标 Blob 自指定日期/时间后发生了修改时才复制 Blob。 如果目标 Blob 未修改,BLOB 服务将返回状态代码 412(不满足前提条件)。
- destination_if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 如果指定此条件头,则仅当目标 Blob 自指定日期/时间后未修改时才复制 Blob。 如果目标 Blob 已修改,BLOB 服务将返回状态代码 412(不满足前提条件)。
- destination_if_match
- <xref:ETag>
ETag 值或通配符 (*)。 指定此条件标头的 ETag 值,仅当指定的 ETag 值与现有目标 Blob 的 ETag 值匹配时,才能复制 Blob。 如果目标 blob 的 ETag 与为 If-Match 指定的 ETag 不匹配,则 Blob 服务将返回状态代码 412 (先决条件失败) 。
- destination_if_none_match
- <xref:ETag>
ETag 值或通配符 () 。指定此条件标头的 ETag 值,以便仅当指定的 ETag 值与目标 Blob 的 ETag 值不匹配时复制 Blob。指定通配符 () 仅在目标 blob 不存在时才执行操作。 如果不满足指定的条件,BLOB 服务将返回状态代码 412(不满足前提条件)。
- destination_lease_id
- str
此标头的租约 ID 必须与目标 Blob 的租约 ID 匹配。 如果请求中不包含租约 ID 或租约 ID 无效,则操作将失败,且显示状态码 412(不满足前提条件)。
返回
复制操作属性,例如状态、源和 ID。
返回类型
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 个字符之间。
返回
如果创建了容器,则为 True;如果容器已存在,则为 False。
返回类型
delete_blob
标记要删除的指定 blob 或快照。 该 Blob 将在稍后的垃圾回收期间删除。
请注意,要删除 Blob,必须删除其所有快照。 可以使用删除 Blob 操作同时删除这两者。
如果为服务启用了删除保留策略,则此操作将软删除 blob 或快照,并将 blob 或快照保留指定的天数。 在指定的天数后,Blob 的数据在垃圾回收期间会从服务中删除。 可以通过指定 include=Include.Deleted 选项的列表 Blob API 访问软删除的 blob 或快照。 可以使用 Undelete 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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
delete_container
标记要删除的指定容器。 在稍后的垃圾回收期间,将删除该容器及其包含的任何 Blob。
delete_container(container_name, fail_not_exist=False, lease_id=None, if_modified_since=None, if_unmodified_since=None, timeout=None)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
返回
如果删除容器,则为 True,False 容器不存在。
返回类型
exists
返回一个布尔值,指示容器是否存在 (如果blob_name为 None) ,则返回一个布尔值,否则返回一个指示 blob 是否存在的布尔值。
exists(container_name, blob_name=None, snapshot=None, timeout=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。 如果已在关联的存储访问策略中指定,则必须省略此字段。
共享访问签名变为无效的时间。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。
共享访问签名生效的时间。 如果省略,将假定此调用的开始时间就是存储服务收到请求的时间。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。
- ip
- str
指定从中接受请求的 IP 地址或 IP 地址范围。 如果请求源自的 IP 地址与 SAS 令牌上指定的 IP 地址或地址范围不匹配,则不会对请求进行身份验证。 例如,在 SAS 上指定 sip=168.1.5.65 或 sip=168.1.5.60-168.1.5.70 会将请求限制为这些 IP 地址。
返回
共享访问签名 (sas) 令牌。
返回类型
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)
参数
- permission
- BlobPermissions
与共享访问签名关联的权限。 用户只能执行权限允许的操作。 权限必须是对读取、写入、删除、列表进行排序。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。
共享访问签名变为无效的时间。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。
共享访问签名生效的时间。 如果省略,将假定此调用的开始时间就是存储服务收到请求的时间。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。
- ip
- str
指定从中接受请求的 IP 地址或 IP 地址范围。 如果请求源自的 IP 地址与 SAS 令牌上指定的 IP 地址或地址范围不匹配,则不会对请求进行身份验证。 例如,在 SAS 上指定 sip=168.1.5.65 或 sip=168.1.5.60-168.1.5.70 会将请求限制为这些 IP 地址。
- user_delegation_key
- UserDelegationKey
用户可以传入用户委派密钥,而不是帐户密钥。 可以通过使用 AAD 标识进行身份验证,从服务获取用户委派密钥;这可以通过调用 get_user_delegation_key 来实现。 如果存在,则使用用户委派密钥对 SAS 进行签名。
返回
共享访问签名 (sas) 令牌。
返回类型
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)
参数
- permission
- ContainerPermissions
与共享访问签名关联的权限。 用户只能执行权限允许的操作。 权限必须是对读取、写入、删除、列表进行排序。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。
共享访问签名变为无效的时间。 必需,除非提供了引用包含此字段的存储访问策略的 ID。 如果已在关联的存储访问策略中指定,则必须省略此字段。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。
共享访问签名生效的时间。 如果省略,将假定此调用的开始时间就是存储服务收到请求的时间。 Azure 将始终将值转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。
- ip
- str
指定从中接受请求的 IP 地址或 IP 地址范围。 如果请求源自的 IP 地址与 SAS 令牌上指定的 IP 地址或地址范围不匹配,则不会对请求进行身份验证。 例如,在 SAS 上指定 sip=168.1.5.65 或 sip=168.1.5.60-168.1.5.70 会将请求限制为这些 IP 地址。
- user_delegation_key
- UserDelegationKey
用户可以传入用户委派密钥,而不是帐户密钥。 可以通过使用 AAD 标识进行身份验证,从服务获取用户委派密钥;这可以通过调用 get_user_delegation_key 来实现。 如果存在,则使用用户委派密钥对 SAS 进行签名。
返回
共享访问签名 (sas) 令牌。
返回类型
get_blob_account_information
获取与存储帐户相关的信息。 如果用户具有对容器或 Blob 的 SAS,也可以检索该信息。
get_blob_account_information(container_name=None, blob_name=None, timeout=None)
参数
返回
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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
表示 Blob 元数据名称、值对的字典。
返回类型
get_blob_properties
返回 Blob 的所有用户定义的元数据、标准 HTTP 属性和系统属性。 它不返回 Blob 的内容。 返回 Blob 与 BlobProperties 和 元数据听写。
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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
包含属性和元数据的 Blob 对象。
返回类型
get_blob_service_properties
获取存储帐户的 Blob 服务的属性,包括 Azure 存储分析。
get_blob_service_properties(timeout=None)
参数
返回
具有附加target_version属性的 Blob ServiceProperties 。
get_blob_service_stats
检索与 Blob 服务的复制有关的统计信息。 仅当为存储帐户启用了读取访问异地冗余复制时,它才可用。
通过地域冗余复制,Azure 存储服务在两个位置维护你的持久数据。 在这两个位置,Azure 存储始终维护您数据的多个运行正常副本。 读取、创建、更新或删除数据的位置称为“主”存储帐户位置。 主要位置存在于你通过 Azure 管理 Azure 经典门户(例如美国中北部)创建帐户时选择的区域。 数据复制到的位置为“辅助”位置。 根据主位置自动确定辅助位置,它在主位置所在区域中的第二个数据中心内。 如果为存储帐户启用了“读访问的地域冗余复制”,则可对辅助位置执行只读访问。
get_blob_service_stats(timeout=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)
参数
- start_range
- int
用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。
- end_range
- int
用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。
- validate_content
- bool
如果设置为 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>)
使用签名函数 (当前总) 的进度回调,其中 current 是到目前为止传输的字节数,total 是 Blob 的大小(如果已知)。
- max_connections
- int
如果设置为 2 或更大,则将为第一个自身执行初始获取。blob 的MAX_SINGLE_GET_SIZE字节。 如果这是整个 Blob,则方法此时返回 。 否则,它将使用等于 max_connections 的线程数并行下载剩余数据。 每个区块的大小为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵,或者不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,这可能也很有用,因为如果max_connections大于 1,空 blob 需要额外的请求。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥解密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
具有属性和元数据的 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)
参数
- open_mode
- str
打开文件时要使用的模式。 请注意,仅指定追加open_mode会阻止并行下载。 因此,如果使用此open_mode,必须将max_connections设置为 1。
- start_range
- int
要用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包含的。 例如:start_range=0,end_range=511 将下载前 512 个字节的 blob。
- end_range
- int
用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包含的。 例如:start_range=0,end_range=511 将下载前 512 个字节的 blob。
- validate_content
- bool
如果设置为 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>)
使用签名函数 (当前总) 的进度回调,其中 current 是到目前为止传输的字节数,total 是 Blob 的大小(如果已知)。
- max_connections
- int
如果设置为 2 或更大,则将为第一个自身执行初始获取。blob 的MAX_SINGLE_GET_SIZE字节。 如果这是整个 Blob,则方法此时返回 。 否则,它将使用等于 max_connections 的线程数并行下载剩余数据。 每个区块的大小为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵,或者不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,这可能也很有用,因为如果max_connections大于 1,空 blob 需要额外的请求。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥解密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
具有属性和元数据的 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)
参数
- start_range
- int
要用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包含的。 例如:start_range=0,end_range=511 将下载前 512 个字节的 blob。
- end_range
- int
用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包含的。 例如:start_range=0,end_range=511 将下载前 512 个字节的 blob。
- validate_content
- bool
如果设置为 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>)
签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而总计是 blob 的大小(如果已知)。
- max_connections
- int
如果设置为 2 或更大,则将为第一个自身完成初始获取。MAX_SINGLE_GET_SIZE blob 的字节。 如果这是整个 Blob,则 方法此时返回。 如果不是,它将使用等于max_connections的线程数并行下载剩余数据。 每个区块的大小均为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵或不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,因为如果max_connections大于 1,则需要对空 blob 执行额外的请求,这也可能很有用。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
具有属性和元数据的 Blob。 如果max_connections大于 1,则不会返回对 blob) 设置content_md5 (。 如果需要此值,请使用 get_blob_properties 或将 max_connections 设置为 1。
返回类型
get_blob_to_text
下载 blob 作为 unicode 文本,并带有自动分块和进度通知。 返回具有属性、元数据和内容的 实例 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)
参数
- start_range
- int
用于下载 Blob 部分的字节范围的起始。 如果未提供end_range,则将下载start_range后的所有字节。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。
- end_range
- int
用于下载 Blob 部分的字节范围的结束。 如果提供了end_range,则必须提供start_range。 start_range和end_range参数是包容性的。 例如:start_range=0,end_range=511 将下载前 512 个 blob 字节。
- validate_content
- bool
如果设置为 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>)
签名函数的进度回调 (当前、总计) ,其中 current 是到目前为止传输的字节数,而总计是 blob 的大小(如果已知)。
- max_connections
- int
如果设置为 2 或更大,则将为第一个自身完成初始获取。MAX_SINGLE_GET_SIZE blob 的字节。 如果这是整个 Blob,则 方法此时返回。 如果不是,它将使用等于max_connections的线程数并行下载剩余数据。 每个区块的大小均为自身。MAX_CHUNK_GET_SIZE。 如果设置为 1,将完成单个大型获取请求。 通常不建议这样做,但如果应使用很少的线程、网络请求非常昂贵或不可查找的流阻止并行下载,则此选项可用。 如果许多 blob 预期为空,因为如果max_connections大于 1,则需要对空 blob 执行额外的请求,这也可能很有用。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥解密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
具有属性和元数据的 Blob。 如果max_connections大于 1,则不会返回对 blob) 设置content_md5 (。 如果需要此值,请使用 get_blob_properties 或将 max_connections 设置为 1。
返回类型
get_container_acl
获取指定容器的权限。 这些权限指示是否可以公开访问容器数据。
get_container_acl(container_name, lease_id=None, timeout=None)
参数
- lease_id
如果指定,get_container_acl仅当容器的租约处于活动状态且与此 ID 匹配时才会成功。
返回
与容器关联的访问策略字典。 如果打开公共访问,则为 str AccessPolicy 和 public_access 属性的 dict
get_container_metadata
返回指定容器的所有用户定义的元数据。
get_container_metadata(container_name, lease_id=None, timeout=None)
参数
返回
表示容器元数据名称、值对的字典。
返回类型
get_container_properties
返回指定容器的所有用户定义的元数据和系统属性。 返回的数据不包含该容器的 Blob 列表。
get_container_properties(container_name, lease_id=None, timeout=None)
参数
返回
容器对象中指定容器的属性。
返回类型
get_user_delegation_key
获取用于对 SAS 令牌进行签名的用户委派密钥。 服务对象上必须存在令牌凭据,此请求才能成功。
get_user_delegation_key(key_start_time, key_expiry_time, timeout=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)
参数
- num_results
- int
指定要返回的 Blob(包括所有 <xref:azure.storage.blob.baseblobservice.BlobPrefix> 元素)的最大数量。 如果请求未指定num_results或指定的值大于 5,000,则服务器将返回最多 5,000 个项目。 将num_results设置为小于或等于零的值会导致错误响应代码 400 (错误的请求) 。
- delimiter
- str
当请求包含此参数时,操作在结果列表中返回一个 BlobPrefix 元素,该元素充当所有 blob 的占位符,其名称以同一子字符串开头,一直以分隔符字符的外观开头。 分隔符可以是单个字符或字符串。
- marker
- str
不透明的延续标记。 如果指定了num_results并且该生成器已完成枚举结果,则可以从上一个生成器对象的 next_marker 字段中检索此值。 如果指定,此生成器将从上一个生成器停止的点开始返回结果。
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)
参数
- num_results
- int
指定要返回的 Blob(包括所有 <xref:azure.storage.blob.baseblobservice.BlobPrefix> 元素)的最大数量。 如果请求未指定num_results或指定的值大于 5,000,则服务器将返回最多 5,000 个项目。 将num_results设置为小于或等于零的值会导致错误响应代码 400 (错误的请求) 。
- delimiter
- str
当请求包含此参数时,操作在结果列表中返回一个 BlobPrefix 元素,该元素充当所有 blob 的占位符,其名称以同一子字符串开头,一直以分隔符字符的外观开头。 分隔符可以是单个字符或字符串。
- marker
- str
不透明的延续标记。 如果指定了num_results并且该生成器已完成枚举结果,则可以从上一个生成器对象的 next_marker 字段中检索此值。 如果指定,此生成器将从上一个生成器停止的点开始返回结果。
list_containers
返回一个生成器,用于列出指定帐户下的容器。 生成器将延迟跟踪服务返回的延续令牌,并在返回所有容器或到达num_results时停止。
如果指定了num_results,并且帐户的容器数超过该数目,则生成器将在完成后填充next_marker字段。 如果需要更多结果,可以使用此标记创建新的生成器。
list_containers(prefix=None, num_results=None, include_metadata=False, marker=None, timeout=None)
参数
- marker
- str
不透明的延续标记。 如果指定了num_results并且该生成器已完成枚举结果,则可以从上一个生成器对象的 next_marker 字段中检索此值。 如果指定,此生成器将从上一个生成器停止的点开始返回结果。
make_blob_url
创建用于访问 Blob 的 URL。
make_blob_url(container_name, blob_name, protocol=None, sas_token=None, snapshot=None)
参数
返回
blob 访问 URL。
返回类型
make_container_url
创建用于访问容器的 URL。
make_container_url(container_name, protocol=None, sas_token=None)
参数
返回
容器访问 URL。
返回类型
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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
release_container_lease
释放租约。 如果指定的lease_id与容器关联的匹配,则可能会释放租约。 通过释放租约,其他客户端可以在释放完成时立即获取该容器的租约。
release_container_lease(container_name, lease_id, if_modified_since=None, if_unmodified_since=None, timeout=None)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
返回
str
renew_container_lease
续订租约。 如果指定的租约 ID 与容器关联的 ID 匹配,则可以续订租约。 请注意,只要自租约过期以来尚没有再次租用容器,即使租约已过期,也可以对其进行续订。 在续订租约时,将重置租约持续时间时钟。
renew_container_lease(container_name, lease_id, if_modified_since=None, if_unmodified_since=None, timeout=None)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
返回
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)
参数
包含名称和值对的 Dict。 每次调用此操作都会替换附加到该 Blob 的所有现有元数据。 要从该 Blob 中删除所有元数据,请不带任何元数据头调用此操作。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
更新的 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)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时才执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定密钥加密服务端的数据。 客户提供的密钥的使用必须通过 HTTPS 完成。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
更新的 Blob 的 ETag 和上次修改的属性
返回类型
set_blob_service_properties
设置存储帐户的 Blob 服务的属性,包括 Azure 存储分析。 如果某个元素 (ex 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)
参数
- delete_retention_policy
- DeleteRetentionPolicy
删除保留策略指定是否保留已删除的 Blob。 它还指定要保留的 Blob 的天数和版本。
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)
参数
- signed_identifiers
- dict(str, AccessPolicy)
要与容器关联的访问策略字典。 字典最多可以包含 5 个元素。 空字典将清除在服务上设置的访问策略。
- if_modified_since
- datetime
日期/时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头以仅当资源自指定日期/时间以来已修改时才执行操作。
- if_unmodified_since
- datetime
日期/时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
返回
更新的容器的 ETag 和上次修改的属性
返回类型
set_container_metadata
为指定的容器设置一个或多个用户定义的名称/值对。 每次调用此操作时,将替换与容器关联的所有现有的元数据。 若要从容器中删除所有元数据,请在不带元数据 dict 的情况下调用此操作。
set_container_metadata(container_name, metadata=None, lease_id=None, if_modified_since=None, timeout=None)
参数
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
返回
更新的容器的 ETag 和上次修改的属性
返回类型
set_proxy
设置 HTTP CONNECT 隧道的代理服务器主机和端口。
set_proxy(host, port, user=None, password=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)
参数
指定与 Blob 关联的用户定义的名称-值对。 如果未指定名称-值对,则此操作将基本 Blob 元数据复制到快照中。 如果指定了多个名称-值对,则使用指定的元数据创建快照,而不从基本 Blob 中复制元数据。
- if_modified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的时间后修改了资源时才执行操作。
- if_unmodified_since
- datetime
一个日期时间值。 Azure 预期传入的日期值为 UTC。 如果包含时区,则任何非 UTC 日期时间都将转换为 UTC。 如果传入的日期没有时区信息,则假定该日期为 UTC。 指定此标头,以便仅在指定的日期/时间后未修改资源时才执行操作。
- if_none_match
- str
ETag 值或通配符 () 。指定此标头以仅当资源的 ETag 与指定的值不匹配时执行操作。指定通配符 () 仅在资源不存在时才执行操作,如果资源存在,则使操作失败。
使用给定的密钥加密服务端上的数据。 必须使用 HTTPS 使用客户提供的密钥。 由于加密密钥本身是在请求中提供的,因此必须建立安全连接才能传输密钥。
返回
快照属性
返回类型
undelete_blob
取消删除 Blob 操作可还原软删除 blob 或快照的内容和元数据。 尝试取消删除未软删除的 blob 或快照将成功,而不会进行任何更改。
undelete_blob(container_name, blob_name, timeout=None)
参数
属性
protocol
request_session
socket_timeout
MAX_CHUNK_GET_SIZE
MAX_CHUNK_GET_SIZE = 4194304
MAX_SINGLE_GET_SIZE
MAX_SINGLE_GET_SIZE = 33554432