如何使用 Python 将 Azure 中的文件从一个存储帐户复制到另一个存储帐户?

How to copy a file in Azure from a one storage account to another using Python?

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

  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)

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

基本上跨存储帐户复制 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(不推荐)。