【问题标题】:Azure SAS expiry while copying blobs复制 blob 时 Azure SAS 到期
【发布时间】:2019-10-23 14:35:00
【问题描述】:

SAS 的理想到期时间应该是什么时候。 SAS url 用于将 blob 从一个容器复制到另一个容器(也可以使用不同的存储帐户)。 复制命令在生成 SAS 后立即调用,那么到期时间是否只是开始 blob 复制所需的时间,还是应该在复制 blob 完成之前有效?

sas_signature = source_blob_object.generate_container_shared_access_signature(source_container, ContainerPermissions.READ, expiry = datetime.utcnow() + timedelta(hours = 1))
blob_url = source_blob_object.make_blob_url(source_container, blob_name, sas_token = sas_signature)
response = dest_blob_object.copy_blob(dest_container, blob_name, blob_url,
standard_blob_tier = dest_access_tier, rehydrate_priority = rehyd_priority)

【问题讨论】:

  • 关于此问题,SAS 令牌应在您完成复制后过期。因为在复制的时候,我们需要继续读取blob数据。所以请将sas token的过期时间设置为大于复制时间或者直接use the account key to copy.
  • 您还有其他顾虑吗?
  • 只有当容器在同一个存储帐户中或 Blob 是公共的时,才能直接使用帐户密钥。对吗?
  • 账户密钥只是访问密钥。您可以使用它来管理存储帐户中的资源。更多详情请参考docs.microsoft.com/en-us/azure/storage/common/…
  • @JimXu 请将上述输入作为答案发布,以便帮助社区中有类似疑问的其他人。谢谢!

标签: azure azure-blob-storage azure-sdk azure-sdk-python


【解决方案1】:

@BhargaviAnnadevara-MSFT 根据您的需要,我正在总结答案:

SAS 令牌应在复制完成后过期。因为在复制的时候,我们需要不断的读取blob数据,将blob写入数据。所以请将sas token的过期时间设置为大于复制时间或者直接use account key to copy blob。除了帐户密钥只是访问密钥。您可以使用它来管理存储帐户中的资源。更多详情请参考document

【讨论】:

    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 2021-11-21
    • 2014-04-13
    • 1970-01-01
    • 2013-02-14
    • 2017-09-16
    • 2014-02-22
    • 2016-02-12
    相关资源
    最近更新 更多