我需要我的用户将文件上传到我的Google云端存储,而无需通过Google进行身份验证。这些主要是运行我的应用程序的Windows桌面/笔记本用户。通过阅读不同的身份验证机制,我发现resumable uploads可能是我正在寻找的那个。上面的页面包含有关如何完成此操作的REST API。我有几个问题:
这是第三方将数据上传到我的帐户而不登录任何Google帐户的正确方法吗?
是否有包含可恢复上传相关代码的Python或Java示例?
感谢您的帮助。
答案 0 :(得分:7)
您有三个主要选择:
使用已签名的网址。基本上,您将提供一个服务器,可以使用您喜欢的任何身份验证方案为应用程序分配“签名URL”。然后,该应用程序将使用其XML API与Google Cloud Storage联系,并使用签名URL上传内容。这是最推荐的方式。 http://developers.google.com/storage/docs/accesscontrol#Signed-URLs
在服务器上启动可恢复上传,并将URL传递给应用程序。启动可恢复会话时,将生成一个URL,上传者会联系该URL以上载实际数据。该URL包含一个upload_id参数,该参数作为该上载的自身身份验证,因此客户端需要该URL(注意:这就是保持上载URL安全的重要性)。 https://developers.google.com/storage/docs/json_api/v1/how-tos/upload#resumable
创建一个权限设置的存储桶,以便匿名用户可以将任意对象写入其中。这是一个坏主意。对存储桶的写入权限意味着匿名用户可以删除该存储桶中的任何文件,上传任意大小的对象(您负责产生的存储费用),在他们上载的对象上设置ACL(例如,他们可以使用您的水桶作为转储电影和与朋友分享网址的地方)。不要采用这种方法。