如何使用 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
(不推荐)。
我写了一段代码,将文件从一个容器复制到同一存储帐户中的另一个容器。
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
(不推荐)。