当前位置: 首页 > 知识库问答 >
问题:

google云存储通过python Firebase管理SDK公开对象

诸葛文博
2023-03-14

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

在docs: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()

共有1个答案

邓越泽
2023-03-14

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

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 bucket中找到data/dinosaurs.json文件,标记为public。

确保使用正确的服务帐户文件初始化管理SDK。并确保您试图访问的bucket与凭据属于同一个Firebase项目。还要确保您的文件上传成功完成--即文件实际上最终到达了预期的位置。

 类似资料:
  • Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。

  • 问题内容: 如何通过AWS Java SDK公开S3对象? 具体来说,通过Java AWS开发工具包提供的API的哪些方法可用于在对象上传后将其公开? 问题答案: 在亚马逊aws论坛中找到了答案。 答案是

  • 原因:com.google.api.client.googlejsonresponseException:401未经授权{“代码”:401,“错误”:[{“域”:“全局”,“位置”:“授权”,“位置类型”:“标头”,“消息”:“匿名调用者没有Storage.Buckets.List access to project 833568054484.”,“原因”:“必需”}],“消息”:“匿名调用者没有

  • 新手问题:我想使用一个云存储桶作为云CDN的原点。不确定这是否可能。目前,我已经为负载均衡器打开了CDN,但我的理解是,它将只缓存来自我的domain.com的内容,并有适当的标题集。当然,我们的假设是,CDN pops比bucket离我的用户位置更近,而bucket离我的用户位置更远,并且从CDN中获取比使用bucket URL(主要是静态图像)更快。谢了。

  • 我的网站文件托管在Google Cloud Storage,每次我更新一个文件(比如。png或。xml)时,我总是要等一段时间才能看到新文件出现在我的页面上。 有没有办法覆盖单个对象的默认缓存设置(max-age=3600)?尝试用“no store”、“no cache”、“max-age=0”编辑“cache-control”元数据,但它们似乎都不起作用,仍然在响应头中获得“cache-con