根据Blobstore文档中的建议,我正在考虑用GCS替换我们对Blobstore API的使用。
据我所知,允许用户上传文件的正确方法似乎是向他们传递一个签名网址,以便他们上传他们的数据。
我缺少的是Blobstore API有一个UploadHandler,它允许你在上传文件时执行某些操作(例如在数据库中存储元数据),甚至返回对用户上传请求的响应
GCS有类似的东西吗?那里推荐的方法是什么?依靠用户通知应用程序已完成上传文件似乎容易出错。
答案 0 :(得分:1)
Object Change Notification表示最接近blobstore API上传处理程序的GCS概念。在该文档的末尾有一个GAE应用程序用法示例。
但是,控制对象更改通知注册是通过手动gsutil
调用完成的,因此使用起来可能有点棘手。
注意:您应该考虑使用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困住了。