Ссылка для скачивания файлов из хранилища Firebase с python - PullRequest
0 голосов
/ 11 марта 2020

Похоже, что не хватает документации по firebase python API. Что я хочу сделать, так это получить ссылку на скачивание всех файлов в папке на firebase-хранилище через мое приложение Flask. Мой последний подход был:

from firebase_admin import storage
bucket = storage.bucket()

blob = bucket.blob('articles/'+aid+'/resources')
server_path = blob.generate_signed_url(datetime.timedelta(seconds=999999999), method='GET')
print(server_path)

проблема в том, что blob = bucket.blob('articles/'+aid+'/resources') указывает на папку в хранилище, и когда я пытаюсь получить ссылку на скачивание для папки, ссылка не работает.

Теперь я могу решить эту проблему двумя способами:

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

К сожалению, я не могу найти документацию о том, как выполнить эти 2 задачи в python. PS. Я уже использую firebase_admin для инициализации своего приложения, и я бы не стал переключаться на pyrebase или другие сторонние библиотеки.

1 Ответ

0 голосов
/ 11 марта 2020

Хорошо. Я более внимательно прочитал документацию firebase_admin, где написано:

https://firebase.google.com/docs/storage/admin/start

Вы можете использовать ссылки на корзины, возвращенные Admin SDK в Совместно с официальными клиентскими библиотеками Google Cloud Storage для загрузки, загрузки и изменения содержимого в корзинах, связанных с вашими проектами Firebase. Обратите внимание, что вам не нужно аутентифицировать библиотеки Google Cloud Storage при использовании Firebase Admin SDK. Ссылки на корзины, возвращаемые Admin SDK, уже аутентифицированы с использованием учетных данных, использованных для инициализации вашего приложения Firebase.

, поэтому я перешел к документации google.cloud и использовал их код без инициализации google.cloud. хранилище, но просто передается как хранилище значение firebase_admin. Итак, чтобы перечислить все объекты в вашем ведре: https://cloud.google.com/storage/docs/listing-objects

blobs = list(bucket.list_blobs())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...