java - 如何允许匿名上传到云存储

标签 java python google-app-engine google-cloud-storage

我需要我的用户将文件上传到我的 Google Cloud Storage,而无需通过 Google 进行身份验证。这些主要是运行我的应用程序的 Windows 台式机/笔记本电脑用户。在阅读了不同的身份验证机制后,我看到了 resumable uploads可能是我要找的人。上面的页面包含有关如何完成此操作的 REST API。我有几个问题:

  1. 这是第三方在不登录任何 Google 帐户的情况下将数据上传到我的帐户的正确方法吗?

  2. 是否有包含断点续传相关代码的Python或Java示例?

感谢您的帮助。

最佳答案

您有三个主要选择:

  1. 使用签名 URL。基本上,您将提供一个服务器,该服务器可以使用您喜欢的任何身份验证方案将“签名 URL”分配给应用程序。然后,该应用程序将使用其 XML API 联系 Google Cloud Storage,并使用签名的 URL 上传内容。这是最推荐的方式。 http://developers.google.com/storage/docs/accesscontrol#Signed-URLs

  2. 在服务器上启动可续传上传,并将 URL 传递给应用程序。启动可恢复 session 时,将生成一个 URL,上传者联系该 URL 以上传实际数据。该 URL 包含一个 upload_id 参数,该参数用作该上传的自己的身份验证,因此该 URL 是客户端所需的全部(注意:这就是为什么保持该上传 URL 安全很重要的原因)。 https://developers.google.com/storage/docs/json_api/v1/how-tos/upload#resumable

  3. 创建一个设置了权限的存储桶,以便匿名用户可以向其中写入任意对象。这是一个坏主意。对存储桶的写权限意味着匿名用户可以删除该存储桶中的任何文件、上传任何大小的对象(您将负责由此产生的存储费用)、在他们上传的对象上设置 ACL(例如,他们可以使用您的存储桶作为转储电影并与他们的 friend 分享 URL 的地方)。不要采用这种方法。

关于java - 如何允许匿名上传到云存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158266/

相关文章:

java - 计算土星和木星的重量

java - 如何将 facebook 响应日期转换为 unix 时间戳

wordpress - 如何制作 www.mywebsite.com/blog?

java - 移动后端启动器 - 上传到 AppEngine Blobstore

java - 为什么我的处理程序不工作?

java - 使用批处理文件获取java安装路径?

python - 如何使用flask-restplus的fields.Url进行mongoengine文档查询集?

python - Goodreads API 和 Django

python - Pyre2 比内置 re 模块慢?

java - 如何从 java servlet 中引发 "back button'?