我找到了关于在容器中列出blob的this主题。
$('.class-name').matchHeight();
但是,这只会列出特定容器中的blob。我如何获得子文件夹中的所有blob?我有几个级别的子文件夹,我想从父容器中获取所有数据文件的名称。
答案 0 :(得分:2)
我们可以在https://github.com/Azure/azure-storage-python/blob/master/azure/storage/blob/baseblobservice.py#L470看到一个功能list_containers()
,其目的是获取存储空间中的所有容器
import azure
from azure.storage.blob import BlobService
blob_service = BlobService(account_name='<account_name>', account_key='<account_key>')
containers = blob_service.list_containers()
for c in containers:
print(c.name)
然后,您可以使用容器的名称在循环中调用list_blob方法。
此外,如果您在blob名称中定义了多个子文件夹,那么您可以参考SO上的一个帖子list virtual folders in azure blob storage via python API。
答案 1 :(得分:0)
您发布的代码无效......
下面是使用Microsoft Azure SDK for Python 3.4 的Python代码,它将列出所有blob名称(带有完整的&#34;子文件夹&#34;路径,例如project1 / images / image1 .png)在特定容器中。
如果您希望获取存储帐户中所有容器中的所有blob名称,只需执行blob_service.list_containers
迭代每个容器并列出每次迭代下的所有blob。
这也是一篇关于如何从Python使用Azure Blob存储的有用文章。
How to use Azure Blob storage from Python
希望这有帮助!
from azure.storage.blob import BlobService
blob_service = BlobService(account_name='<storage account name>', account_key='<storage account key>')
blobs = []
marker = None
while True:
batch = blob_service.list_blobs('<blob container name>', marker=marker)
blobs.extend(batch)
if not batch.next_marker:
break
marker = batch.next_marker
for blob in blobs:
print(blob.name)
答案 2 :(得分:0)
在上面批准的解决方案中稍作修改。 新版本中已弃用 BlobService,请改用 BlockBlobService。
import azure
from azure.storage.blob import BlockBlobService
blob_service = BlockBlobService(account_name='<account_name>', account_key='<account_key>')
containers = blob_service.list_containers()
for c in containers:
print(c.name)