【问题标题】:Enable users to POST directly to Google Cloud Storage?允许用户直接发布到 Google Cloud Storage?
【发布时间】:2020-01-07 11:58:19
【问题描述】:

This process 允许用户直接上传(POST)数据到指定的 GCS 存储桶,无需任何 GAE 中介。对于大文件,这对于用户和开发人员来说似乎更容易/更快/更好。是否可以使用 Google Cloud 的 Python SDK(或纯 Python)做这样的事情?

【问题讨论】:

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


    【解决方案1】:

    您可以允许用户使用 Cloud Storage XML API 直接从网络浏览器上传。下面的示例上传到 public 存储桶,使用用户在“key”文本字段中输入的内容命名文件:

    <form action="http://storage-upload.googleapis.com/[BUCKET_NAME]/" method="post" enctype="multipart/form-data">
        <input type="text" name="key" value="">
        <input type="hidden" name="success_action_redirect" value="http://www.example.com/success_notification.html">
    
        <input name="file" type="file">
        <input type="submit" value="Upload">
    </form>
    

    有多种方法可以保护这一点,POST Object 文档提供了如何使用 Python 生成的策略文档的示例,但您也可以使用Signed URLs,它可以使用App Identity Python API 生成.

    Cloud Storage XML API 的另一个有趣之处在于,它还允许您实现 Resumable uploads,这可能是上传大文件的最佳方法。

    关于大小限制,我在官方文档中找不到任何关于此 API 限制的具体信息,但我认为这可以通过运行一些测试轻松确定。

    【讨论】:

      猜你喜欢
      • 2018-11-18
      • 2016-04-13
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多