是否可以从Azure Blob存储容器中读入所有文件,用Python读取后删除文件?

问题描述 投票:0回答:1

我想读取 的文件,并将它们保存在我的本地计算机上。将它们保存在我的本地计算机上后,我想删除Blob存储中的那些文件。

我发现 这个 栈上的解决方案。然而,这只是用于读取一个单一的blob文件(其中你需要指定文件的名称)。

# The example from stack, to read in 1 file. 
from azure.storage.blob import BlockBlobService

block_blob_service = BlockBlobService(account_name='myaccount', account_key='mykey')
block_blob_service.get_blob_to_path('mycontainer', 'myblockblob', 'out-sunset.png')
python azure azure-storage-blobs
1个回答
1
投票

其实这很简单。你只需要列出blob,然后分别下载每个blob。

就像这样。

from azure.storage.blob import BlockBlobService

block_blob_service = BlockBlobService(account_name='myaccount', account_key='mykey')

#list blobs in container
blobs = block_blob_service.list_blobs(container_name='mycontainer')

for blob in blobs:
    #download each blob
    block_blob_service.get_blob_to_path(container_name='mycontainer', blob_name=blob.name, file_path=blob.name)
    #delete blob
    #block_blob_service.delete_blob(container_name='mycontainer', blob_name=blob.name)

请注意上面的代码是假设你的blob容器里没有blob的虚拟文件夹 如果你在blob容器里的虚拟文件夹里有blob就会失败。你需要先在本地文件系统上创建一个目录。

© www.soinside.com 2019 - 2024. All rights reserved.