【问题标题】:Public URL to files in Google Cloud Storage from python backend (Google App Engine)从 python 后端(Google App Engine)到 Google Cloud Storage 中文件的公共 URL
【发布时间】:2017-07-08 16:49:42
【问题描述】:

我正在开发一个 Android 应用程序,它与用 Python 编写的后端 Google App Engine 进行通信。用户正在将文件上传和下载到 Google Cloud Storage。至此,文件通过 POST 请求发送到 GAE 后端,然后保存在 GCS 中。我希望用户直接对 GCS 执行此操作(以避免通过 POST 发送大文件)。并且(根据下载请求)我想仅向用户发送公共 URL 到文件。 PHP中有一个很好的教程: https://cloud.google.com/appengine/docs/php/googlestorage/user_uploadhttps://cloud.google.com/appengine/docs/php/googlestorage/public_access 和那里的关键句:“一旦文件以公开可读的方式写入 Cloud Storage,您需要使用 CloudStorageTools::getPublicUrl 获取文件的公共 URL。”如何在python中做同样的事情?

【问题讨论】:

    标签: python google-app-engine file-upload google-cloud-storage


    【解决方案1】:

    GCS 中文件的公共 URL 如下所示:

    https://storage.googleapis.com/<appname>.appspot.com/<filename>
    

    当我在 GCS 中存储文件时,我明确地给文件一个文件名,这样我就可以使用上面的模板创建一个服务 URL。

    当您在 GCS 中存储文件时,您是否提供了文件名?如果没有,你能做到吗?可能会在您的问题中提供有关如何将文件保存到 GCS 以获得更好答案的详细信息。

    【讨论】:

    • 是的,我正在使用 gcs.open(filename, options...) 创建文件。那么,在创建文件时通过设置正确的 'x-goog-acl' 选项来公开文件是否足够?
    • 我自己没有这样做,但听起来它会起作用。请尝试告诉我们。
    • 是的,需要做的是将'x-goog-acl'设置为允许读取的任何选项(例如“public-read”),然后我们可以使用您显示的链接。谢谢!
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 2014-11-22
    • 2015-07-07
    • 1970-01-01
    • 2020-12-01
    • 2018-07-22
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多