我想读取 都 的文件,并将它们保存在我的本地计算机上。将它们保存在我的本地计算机上后,我想删除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')
其实这很简单。你只需要列出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就会失败。你需要先在本地文件系统上创建一个目录。