1

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

  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)

但现在我想跨不同的存储帐户复制文件。我怎样才能做到这一点?

4

1 回答 1

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(不推荐)来执行此操作。

于 2019-08-26T05:01:48.907 回答