Azure/Python - 从存储快速下载文件

问题描述

我的 Azure Web 应用程序需要从 blob 存储目录下载 1000 多个非常小的文件并对其进行处理。

如果我列出来,然后一个一个下载,需要很长时间……有什么快速方法吗?喜欢一起下载吗?

PS:我使用以下代码

from azure.storage.blob import ContainerClient,BlobClient

blob_list = #... list all files in a blob storage directory

for blob in blob_list:
    blob_client = BlobClient.from_connection_string(connection_string,container_name,blob)
    downloader = blob_client.download_blob(0)
    blob = pickle.loads(downloader.readall())

解决方法

我使用 Azure databricks 解决了类似的问题。您可以轻松地在数据块(即 ADLS Gen2)中安装 Azure 存储帐户,然后处理本地文件等存储文件。即使不下载文件,您也可以复制文件或直接进行处理/转换。
您可以在此 LINK
中找到数据块安装步骤 在数据块中,您还可以使用 dbutils 函数在挂载 ADLS 后让操作系统访问您的文件。
我希望这种方法能有所帮助。

,

我还要指出,由于您使用的是 azure-batch,因此您可以在您的 linux 虚拟机中使用 blob 挂载配置。因此,我们的想法是将驱动器挂载到您的 VM,从而消除所有下载时间,并将您的驱动器连接到 vm。

谢谢并希望这会有所帮助。