Azure Blob 在压缩后将文件夹从一个容器复制到另一个容器

Azure Blob copy folder from one container to another after zipping it

在 blob 存储中,我有两个容器 SourceTarget。我需要将文件夹从 Source 复制到 target,但一个条件是在将文件夹复制到 Target 容器之前需要压缩这些文件夹。我正在使用 Python。我已经成功地复制了这些文件夹,但我无法找到压缩它们的方法。

blob_service_client = BlobServiceClient(account_url='https://blob_storage.blob.core.windows.net/',credential='access_key')

source_container_name = "Source"
source_file_path = "1644579641903/data_0_0_0.csv"

source_blob = f"https://blob_storage.blob.core.windows.net/{source_container_name}/{source_file_path}"

target_container_name = "Target"
target_file_path = "1644579641903/data_0_0_0.csv"

copied_blob = blob_service_client.get_blob_client(target_container_name, target_file_path)
copied_blob.start_copy_from_url(source_blob)

我已经在我的环境中测试过

根据Joel Cochran的建议,我们可以在 Azure 数据工厂中使用复制 Activity 将文件夹在压缩后从一个容器复制到另一个容器

您需要使用 Azure 数据工厂中的 Azure Blob 存储帐户详细信息创建链接服务

使用复制数据创建管道 Activity。 Select 源为 Azure Blob 存储二进制数据集,源容器和压缩类型为 None

Select 接收为 Azure Blob 存储二进制数据集,目标容器和压缩类型为 ZipDeflate

发布并运行管道。包含源容器中所有文件和文件夹的 zip 文件将被复制到目标容器