Как загрузить файлы из хранилища Firebase - PullRequest
3 голосов
/ 02 ноября 2019

Я пытаюсь загрузить некоторые файлы из хранилища Firebase. Прямо сейчас я пытаюсь перечислить все файлы по определенному пути, как это:

from google.cloud import storage


client = storage.Client()
bucket = client.get_bucket('myapp.appspot.com/path/to/folder')
blob = list(bucket.list_blobs())
print(len(blob))

Проблема, с которой я сталкиваюсь, заключается в том, что я получаю все результаты, которые находятся на моем ведре, и мне нужны только те, на которыхпуть, который я выбрал.

Что я делаю не так? Есть ли другой способ достичь того, что мне нужно?

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Вы должны попробовать:

 from google.cloud import storage
 from google.cloud.storage import Blob  
 storage_client = storage.Client()

 # get all the buckets
 buckets = storage_client.list_buckets()
 for bucket in buckets:
     print(bucket.name)
 # output  bucket_name

 # get all the blobs in a bucket
 bucket = client.get_bucket("bucket_name")
 blobs = list(bucket.list_blobs())
 for blob in blobs:
     print (blob)
 # print the blobs: blob_name

 #check if the blob exists
 assert isinstance(bucket.get_blob('blob_name'), Blob)

 #get the blob from path
 my_blob = Blob.from_string("gs://bucket_name/blob_name")

 # List the files in a folder 
 files = bucket.list_blobs(prefix='folder_name')
 for f in files:
     print(f.name)
0 голосов
/ 02 ноября 2019

В вашем примере имя корзины просто "myapp.appspot.com". Компоненты пути к именам сегментов облачного хранилища отсутствуют. Контейнер не содержит других контейнеров, только файлы с разными путями. Вы захотите извлечь путь из имени сегмента и вместо этого передать эту строку в список API , чтобы получить файлы с указанным префиксом.

...