我正在GAE(python)中创建一个应用程序,允许用户(必须使用Google帐户登录)直接将文件上传到Google云端存储。上传将异步发生(一个按钮将执行一些javascript代码以发送带有文件的XHR PUT请求。)
我决定使用JSON API,我正在尝试进行分段上传。根据文档,我需要包含带有令牌的Authorization标头。我很想知道,因为我不需要访问用户帐户中的任何内容(比如日历或那种东西),实现这一目标的最佳方式是什么?
是否可以从应用程序默认凭据创建临时访问令牌,并将其发送到html文件中的用户,然后从js函数使用它?如果没有,我该怎么办?
答案 0 :(得分:0)
您需要让用户向您授予谷歌云存储写入范围(我强烈建议任何谷歌云存储用户不授予任何随机应用程序)。您还需要授予最终用户对您的存储桶的写入权限(这也意味着他们可以删除存储桶中的所有内容)。除非您事先了解所有最终用户,否则这意味着您需要将存储桶公开写入..我怀疑这是您想要做的事情。
我强烈建议您使用委托访问您的服务帐户,但不幸的是,JSON api目前不支持任何形式的身份验证委派。但是,XML API确实支持签名URL。
https://cloud.google.com/storage/docs/access-control/signed-urls
您只需将它用于客户端上传,其他所有内容都可以使用JSON API。
有三种选择:
https://cloud.google.com/storage/docs/xml-api/put-object-upload#query_string_parameters
https://cloud.google.com/storage/docs/xml-api/post-object#policydocument
https://cloud.google.com/storage/docs/access-control/signed-urls#signing-resumable