【问题标题】:Download files link from Firebase storage with python使用 python 从 Firebase 存储下载文件链接
【发布时间】:2020-06-23 08:09:26
【问题描述】:

关于 firebase python API 的文档似乎非常缺乏。我想做的是通过我的 Flask 应用程序获取 firebase 存储文件夹中所有文件的下载链接。我的最新方法是:

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') 指向存储中的一个文件夹,当我尝试获取该文件夹的下载链接时,该链接不起作用。

现在我可以通过两种不同的方式解决这个问题:

  • 想办法压缩文件夹然后获取下载链接
  • 列出文件夹中的文件,然后获取每个文件的下载链接

不幸的是,我找不到任何关于如何在 python 中执行这两个任务的文档。 PS。我已经在使用 firebase_admin 来初始化我的应用,我不想切换到 pyrebase 或其他第三方库。

【问题讨论】:

    标签: python firebase flask firebase-storage


    【解决方案1】:

    好的,我更仔细地阅读了 firebase_admin 文档,上面写着:

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

    您可以使用 Admin SDK 返回的存储桶引用 结合官方的 Google Cloud Storage 客户端库 上传、下载和修改与关联的存储桶中的内容 您的 Firebase 项目。请注意,您不必进行身份验证 使用 Firebase Admin SDK 时的 Google Cloud Storage 库。这 Admin SDK 返回的存储桶引用已经过身份验证 使用用于初始化 Firebase 应用的凭据。

    所以我去了 google.cloud 文档并使用了他们的代码,而无需初始化 google.cloud 存储,而只是将 firebase_admin 作为 storage 传递。因此,要列出存储桶中的所有对象: https://cloud.google.com/storage/docs/listing-objects

    blobs = list(bucket.list_blobs())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2021-04-16
      相关资源
      最近更新 更多