【问题标题】:Only make S3 files accessible through ajax仅使 S3 文件可通过 ajax 访问
【发布时间】:2014-04-27 15:32:01
【问题描述】:

我想使用 S3 来存储用户上传的 excel 文件 - 显然我只希望该用户可以访问该 S3 文件。

现在,我的应用程序通过检查用户是否正确,然后通过 AJAX 访问 URL https://s3.amazonaws.com/datasets.mysite.com/1243 来完成此操作。我可以使用 CORS 仅允许来自 https://www.mysite.com 的此 AJAX。

但是,如果你只是在浏览器中输入https://s3.amazonaws.com/datasets.mysite.com/1243,你可以得到任何文件:P

如何阻止 S3 直接提供文件,并且只允许它通过 ajax 提供服务(我已经使用 CORS 控制了访问)?

【问题讨论】:

标签: amazon-web-services amazon-s3


【解决方案1】:

这不是关于 AJAX 与否,而是关于权限和授权。

首先,您的存储桶应该是私有的,不像它们当前的状态是世界可见的。

然后,为了让您的用户连接,您创建了一个临时下载链接,在 AWS 世界中称为 S3 Pre-signed Request。

您在后端生成它们,这里是java sample

享受, 回复

【讨论】:

  • 谢谢 Froyke - 你知道如何将 s3 存储桶设为私有吗?
  • 您可以使用 API 或从 Web 管理控制台执行此操作。只需右键单击存储桶 - 并在右侧面板上调整其权限。另请注意检查存储桶内的对象(文件) - 因为它们可能具有不同的权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 2023-03-05
相关资源
最近更新 更多