【问题标题】:google cloud storage make object public through python Firebase admin SDK谷歌云存储通过 python Firebase admin SDK 公开对象
【发布时间】:2018-08-11 04:10:47
【问题描述】:

我正在尝试将我上传到 Firebase 存储(谷歌云存储)的 excel 文件作为链接公开。当我使用 blob.make_public() 方法时,我得到一个 Forbidden 403 错误:权限不足。

我正在使用适用于 python 的 Firebase Admin SDK。据我所知,在云控制台的 IAM 部分,管理 SDK 具有编辑者和存储对象管理员角色。有什么方法可以通过python将上传的对象公开?

在文档中没有找到任何其他有用的东西: Python GCS API

谢谢。

代码示例

# Access google cloud storage bucket
bucket = firebase_admin.storage.bucket(app=app)
# Blob - Google's wrapper for objects stored in buckets
destination_blob_name = 'excelReports/' + filename + '_' + datetime.now().strftime("%b_%d_%Y_%H_%M_%S")
blob = bucket.blob(destination_blob_name)

# Upload file
blob.upload_from_filename(filename)

# Make the file available for public download by those who have the link.
blob.make_public()

【问题讨论】:

    标签: python firebase google-cloud-storage firebase-admin


    【解决方案1】:

    我刚刚尝试了以下集成测试用例,它按预期工作。

    from firebase_admin import storage
    
    def test_make_public(project_id):
        bucket_name = '{0}.appspot.com'.format(project_id)
        bucket = storage.bucket(bucket_name)
        blob = bucket.blob('data/dinosaurs.json')
        blob.upload_from_filename('tests/data/dinosaurs.json')
        blob.make_public()
    

    测试后,我可以在 GCS 存储桶中找到 data/dinosaurs.json 文件,标记为公开。

    确保您使用正确的服务帐户文件来初始化 Admin SDK。并确保您尝试访问的存储桶与凭据属于同一个 Firebase 项目。还要确保您的文件上传成功完成 - 即文件实际上最终位于预期位置。

    【讨论】:

    • 这是我通过该项目的 Firebase 控制台获得的服务帐户 .json 文件,并列在项目 IAM 成员列表中。获取服务帐户文件是否有不同的途径?存储桶位于同一项目中,并且文件确实在预期位置正确上传。 blob.make_public() 仍然失败将尝试获取一个新的凭据文件,但这个文件确实让我可以访问数据库并进行上传。
    • 通过 IAM 接口创建的新服务帐户凭据文件没有帮助。仍然拒绝许可。
    • 我想知道你的存储桶是否有一些不寻常的权限。检查存储桶权限可能很有用。在我的设置中,存储桶对我的服务帐户具有“Storage Legacy Bucket Owner”权限。
    • 所以今天早上它可以正常工作,而无需对上传代码、权限或服务帐户文件进行任何更改。我唯一能想到的是我正在修复一个 pandas 错误并确保它在正确的虚拟环境中运行。主环境具有较旧的 firebase-admin 和 google-cloud-storage 软件包版本。我只是在这里猜测。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2017-09-05
    • 2023-03-26
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多