小编use*_*503的帖子

在Google云端存储签名网址中提供回调网址

当使用BlobStore的createUploadURL函数上传到GCS(Google云端存储)时,我可以提供回调以及将被发布到回调URL的标题数据.

使用GCS的签名URL似乎没有办法做到这一点

我知道有对象更改通知但不允许用户在POST的标题中提供上传特定信息,这可以通过createUploadURL的回调来实现.

我的感觉是,如果createUploadURL能做到这一点,必须有办法用标识的URL的做到这一点,但我找不到它的任何文件.我想知道是否有人可能知道createUploadURL如何实现该回调调用行为.


PS:我正在尝试离开createUploadURL因为__BlobInfo__它创建的实体,这对于我不需要的特定用例,并且似乎是不可磨灭的并且浪费存储空间.


更新:它工作了!方法如下:

简答:PUT无法完成,但可以通过POST完成

答案很长:

如果你看看签署-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

8
推荐指数
1
解决办法
1192
查看次数

使用 ngResource 在 AngularJS 中设置 enctype

我正在使用 Angular 的 $resource 上传文件。我需要将编码设置为 mulipart/form-data,但无论如何我都找不到在 $resource 中设置 enctype。

那可能吗?换句话说,$resource 可以用于文件上传还是我必须更深入地使用 $http,使用 config 参数修改标头?

在 AngularJS 中发布多部分/表单数据表单的正确方法是什么?

file-upload angularjs ngresource

4
推荐指数
1
解决办法
7452
查看次数