当使用BlobStore的createUploadURL函数上传到GCS(Google云端存储)时,我可以提供回调以及将被发布到回调URL的标题数据.
使用GCS的签名URL似乎没有办法做到这一点
我知道有对象更改通知但不允许用户在POST的标题中提供上传特定信息,这可以通过createUploadURL的回调来实现.
我的感觉是,如果createUploadURL能做到这一点,必须有办法用标识的URL的做到这一点,但我找不到它的任何文件.我想知道是否有人可能知道createUploadURL如何实现该回调调用行为.
PS:我正在尝试离开createUploadURL因为__BlobInfo__它创建的实体,这对于我不需要的特定用例,并且似乎是不可磨灭的并且浪费存储空间.
更新:它工作了!方法如下:
答案很长:
如果你看看签署-URL页面,在HTTP_Verb面前,在说明,有一个微妙的注意,该页面只是相关的GET,HEAD,PUT和DELETE,但POST是一个完全不同的游戏.我错过了这个,但事实证明这非常重要.
有一整页HTTP标头没有列出可以与POST一起使用的重要标头; 该标题是success_action_redirect,正如voscausa正确回答的那样.
在POST页面中,Google"强烈建议"使用PUT,除非处理表单数据.但是,POST有一些很好的功能,PUT没有.他们可能会担心POST给我们带来了太多的字符串.
但我要说完全值得删除createUploadURL,并编写自己的代码来重定向到回调.方法如下:
码:
如果您正在使用Python voscausa的代码非常有帮助.
我正在使用apejs在Java应用程序中编写javascript,所以我的代码如下所示:
var exp = new Date()
exp.setTime(exp.getTime() + 1000 * 60 * 100); //100 minutes
json['GoogleAccessId'] = String(appIdentity.getServiceAccountName())
json['key'] = keyGenerator()
json['bucket'] = bucket
json['Expires'] = exp.toISOString();
json['success_action_redirect'] = "https://" + request.getServerName() + "/test2/";
json['uri'] = 'https://' + bucket + …Run Code Online (Sandbox Code Playgroud) upload google-app-engine callback blobstore google-cloud-storage
我正在使用 Angular 的 $resource 上传文件。我需要将编码设置为 mulipart/form-data,但无论如何我都找不到在 $resource 中设置 enctype。
那可能吗?换句话说,$resource 可以用于文件上传还是我必须更深入地使用 $http,使用 config 参数修改标头?
在 AngularJS 中发布多部分/表单数据表单的正确方法是什么?