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