【问题标题】:How to copy a file in Azure from a one storage account to another using Python?如何使用 Python 将 Azure 中的文件从一个存储帐户复制到另一个存储帐户?
【发布时间】:2019-12-30 06:57:27
【问题描述】:

我编写了一段代码,将文件从一个容器复制到同一个存储帐户中的另一个容器。

  block_blob_service = BlockBlobService(
  account_name='', account_key='')

  blob_name = file_name
  copy_from_container = source
  copy_to_container = destination
  blob_url = block_blob_service.make_blob_url(copy_from_container, blob_name)
  # blob_url:https://demostorage.blob.core.windows.net/image-container/pretty.jpg
  block_blob_service.copy_blob(copy_to_container, blob_name, blob_url)

但现在我想跨不同的存储帐户复制文件。 我该怎么做?

【问题讨论】:

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


    【解决方案1】:

    基本上,跨存储帐户复制 blob 的方法或多或少保持不变。您需要执行以下操作:

      source_block_blob_service = BlockBlobService(
      source_account_name= '', source_account_key= '')
    
      target_block_blob_service = BlockBlobService(
      target_account_name= '', target_account_key= '')
    
      blob_name = file_name
      copy_from_container = source
      copy_to_container = destination
      blob_url = source_block_blob_service.make_blob_url(copy_from_container, blob_name)
      # blob_url:https://demostorage.blob.core.windows.net/image-container/pretty.jpg
      target_block_blob_service.copy_blob(copy_to_container, blob_name, blob_url)
    

    请注意,跨存储帐户复制 blob 时,源 blob URL 应可公开访问。您可以通过创建至少对源 blob 具有读取权限的共享访问签名 (SAS) URL(推荐方法)或将源 blob 容器 (copy_from_container) 的 ACL 设置为 Blob(不推荐)来执行此操作。

    【讨论】:

    • 我收到以下错误:“azure.common.AzureMissingResourceHttpError:指定的资源不存在。错误代码:CannotVerifyCopySource CannotVerifyCopySource指定的资源不存在。”虽然存储帐户、容器和文件确实存在。
    • 就像我在回答中所说的,源 blob 应该是可访问的。请看我回答的最后一段。
    • 没有模块名称 .make_blob_url,我认为这不适用于较新的 sdk 版本
    • 还有 ImportError: cannot import name 'BlockBlobService',
    • @mas ...我提供的答案是针对旧版本的 SDK。较新的版本 (12.x) 与旧版本截然不同。更新版本请参考docs.microsoft.com/en-us/azure/storage/blobs/…
    猜你喜欢
    • 2021-08-25
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2015-10-22
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多