用GCS替换BlobStore上传处理程序

时间:2017-02-02 12:14:59

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

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

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

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

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

3 个答案:

答案 0 :(得分:1)

Object Change Notification表示最接近blobstore API上传处理程序的GCS概念。在该文档的末尾有一个GAE应用程序用法示例。

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

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

  

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

我个人暂时坚持使用blobstore API,至少在发布实际的 API 弃用日期和/或有效的弃用警告开始流动之前 - 其他选项可能会在当时可用

答案 1 :(得分:0)

上传过程与BlobStore完全不同,您只需create the upload url使用名为

的云存储桶(gs_bucket_name)
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)

答案 2 :(得分:0)

与此同时,我偶然发现了一个类似问题的答案:Provide a callback URL in Google Cloud Storage signed URL

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