将 BlobStore 上传处理程序替换为 GCS



我正在考虑根据Blobstore文档中的建议,用GCS替换我们对Blobstore API的使用。

据我所知,允许用户上传文件的正确方法似乎是向他们传递一个签名的 URL,他们可以在其中上传他们的数据。

我缺少的是 Blobstore API 有一个 UploadHandler,它允许你在上传文件时执行一些操作(例如,将元数据存储在数据库中(,甚至返回对用户上传请求的响应。

GCS有类似的东西吗?那里推荐的方法是什么?依靠用户通知应用它已完成文件上传似乎容易出错。

对象更改通知表示最接近 blobstore API 上传处理程序的 GCS 概念。在该文档的末尾,有一个 GAE 应用使用示例。

但是,控制对象更改通知注册是通过手动gsutil调用完成的,因此使用起来可能有点棘手。

顺便说一句,我认为实际存储,而不是 API 本身正在被弃用。或者至少这是我对Blobstore Python API概述说明的解释:

注意:您应该考虑使用 Google Cloud Storage 而不是 Blobstore 来存储 Blob 数据。

就我个人而言,我现在坚持使用 blobstore API,至少在发布实际的 API 弃用日期和/或活动弃用警告开始流动之前 - 届时可能会提供其他选项。

上传过程与 BlobStore 完全不同,只需使用名为 gs_bucket_name 的云存储桶 (( 创建上传 URL

google.appengine.ext.blobstore.blobstore.create_upload_url(success_path, max_bytes_per_blob=None, max_bytes_total=None, rpc=None, gs_bucket_name=None)

与此同时,我偶然发现了一个类似问题的答案:在 Google Cloud Storage 签名网址中提供回调网址

答案似乎是使用(不鼓励的(表单POST方法,并添加一个succes_action_redirect标头。太糟糕了,这不适用于PUT.虽然不是 100% 我想要的,所以我想我被困在 Blobstore 上。

最新更新