跨不同的存储帐户复制blob存储中的目录



我正在开发一个数据传输服务,该服务将容器的特定目录中的数据复制到目标容器。此服务将提供带有SAS令牌的src容器URL和需要作为输入复制的目录。(假设目标容器URL是静态的(

我已经尝试过使用子流程模块使用azcopy shell命令,并且能够做到这一点。但是,在不首先列出目录&一个接一个地连续复制?

是否有任何azure云服务在某个触发器(API回调(上执行复制活动?

我已经在我的环境中进行了测试。

如果不在目录中列出blob,我们就无法将存储帐户目录中的所有blob文件复制到另一个存储帐户。

我们可以使用以下python代码将目录中的Blob从一个存储帐户复制到另一个存储账户:

from azure.storage.blob import BlobServiceClient, BlobClient
source_connect_str = "source_storage_account_connection_string"
destination_connect_str="destination_storage_account_connection_string"
source_blob_service_client = BlobServiceClient.from_connection_string(source_connect_str)
destination_blob_service_client = BlobServiceClient.from_connection_string(destination_connect_str)
source_container_client = source_blob_service_client.get_container_client("containerName")
my_blobs = source_container_client.list_blobs(name_starts_with="directory/")
for my_blob in my_blobs:
source_blob = BlobClient(source_blob_service_client.url,container_name="containerName",blob_name=my_blob.name,credential="sas-token-of-source-storage-account")
destination_blob = destination_blob_service_client.get_blob_client("containerName",my_blob.name)
destination_blob.start_copy_from_url(source_blob.url)

是否有任何azure云服务在上执行复制活动某个触发器(API回调(?

在这种情况下,您可以使用Azure Logic应用程序在触发上执行复制活动

最新更新