2015-12-10 3 views
0

Я нашел this нить о перечислении капли в контейнере.Как получить все капли на всех уровнях в контейнере?

from azure import * 
from azure.storage import * 

blob_service = BlobService(account_name='<accountname>', account_key='<accountkey>') 
next_marker = None 
while True: 
    blobs = blob_service.list_blobs('<containername>', maxresults=100, marker=next_marker) 
    next_marker = blobs.next_marker 
    print(next_marker) 
    print(len(blobs)) 
    if next_marker is None: 
     break 
print "done" 

Однако, это будет только список капли в конкретном контейнере. Как я могу получить все капли в подпапках? У меня есть несколько уровней подпапок, и я хотел бы получить имена всех файлов данных из родительского контейнера.

+0

Что вы имеете в виду подпапки? Это должно отображать все капли в контейнере. –

+0

Используете ли вы Microsoft Azure SDK для Phython 2.7 или 3.4? – juvchan

+0

Вы хотите, чтобы все контейнеры blob и все капли, а не только капли в определенном контейнере? – juvchan

ответ

0

Существует функция list_containers() мы можем увидеть в https://github.com/Azure/azure-storage-python/blob/master/azure/storage/blob/baseblobservice.py#L470 каких целях, чтобы получить все контейнеры в вашем хранилище

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, есть поток list virtual folders in azure blob storage via python API на SO, на который вы можете ссылаться.

0

код вы вывесили не работаете ...

Ниже приведен код Python с использованием Microsoft Azure SDK для Python 3.4, который перечислит все имена двоичных объектов (с полным «подпапкой» путем, например, project1/images/image1.png) в конкретном контейнере.

Если вы хотите получить все имена blob во всех контейнерах в учетной записи хранилища, просто сделайте blob_service.list_containers, чтобы проходить через каждый контейнер и перечислить все капли по каждой итерации.

Это также полезная статья о том, как использовать Azure Blob Storage на Python.

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) 
+0

В приведенном выше коде будут перечислены все капли в контейнере blob. Я считаю, что OP хочет перечислить капли в подпапке внутри контейнера blob. –

Смежные вопросы