【问题标题】:How do I get the url of uploaded file?如何获取上传文件的 url?
【发布时间】:2020-01-05 16:56:06
【问题描述】:

我已经上传了一个mp4文件如下:

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import storage
    cred = credentials.Certificate('my-app-service.json')
    firebase_admin.initialize_app(cred, {
        'storageBucket': 'amy-app-name.appspot.com'
    })

    bucket = storage.bucket()
    blob = bucket.blob('teamfk.mp4')
    blob.upload_from_filename('path/to/teamfk.mp4')

现在我找不到获取上传网址引用的语法?

  • 补充一点,我应该可以从浏览器查看/下载。
  • 无需认证,公开即可。

【问题讨论】:

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


    【解决方案1】:

    根据Google Docs - Cloud Storage

    文件的公共 URL 可以通过

    blob.make_public()
    blob.public_url
    

    【讨论】:

    • 检查make_public
    • 对此答案+1。似乎 OP 可能对存储的对象具有 ACL 权限,从而阻止直接访问。 OP在之前评论中提供的URL中包含&token=...参数,很可能是用来验证访问请求的。
    • @SpencerD 的 url 也不同,即使我附加了相同的令牌它也不起作用。public_url 给了storage.googleapis.com 但firebase控制台上的链接是firebasestorage.googleapis.com/v0/b
    • 似乎storage 的令牌与firebasestorage 不同,即使我使用的是相同的服务帐户json。 @Vishnudev 公开后有效。伟大的。谢谢老兄。
    【解决方案2】:

    这是另一种方式!如果您想生成一个仅在特定时间范围内有效的 URL,您可以使用这种方式来完成。

    file_url = blob.generate_signed_url(datetime.timedelta(days=1), method='GET') #this URL only valid for 1 day
    

    更多详情请参考this链接:)

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      • 2022-07-12
      • 1970-01-01
      • 2019-12-22
      相关资源
      最近更新 更多