0

我们的站点允许用户将他们的私有文件存储在我们的站点上,自从我们迁移到 AWS 后,该站点现在位于 S3 存储桶中。用户可以再次下载他们的文件,但必须在登录我们的网站后。即使他们有直接 URL ( /download.php?fileid=1234),用户也必须先登录。

现在我们有一个下载脚本,它从 S3 中分块提取文件,然后将其传递给用户。这可以正常工作,如果他们的浏览器支持,甚至允许继续下载。没有人有任何抱怨。

但是我有这种烦人的感觉,我只是做错了,必须有某种方法允许用户直接从 S3 下载 - 但同样,只有登录到我们的网站。

我一直在查看预签名 URL - 这是我需要的吗?如果是这样,那么我想我应该Location: https://bucket.s3...在用户点击时进行重定向/download.php?fileid=1234

这将如何与支持恢复的下载管理器一起使用?resume 会因为使用当时过期的密钥直接进入 S3 而停止工作吗?恢复是如此罕见,对于普通人来说,不必先通过我们的服务器可能值得提高速度......

你们如何处理来自 S3 的安全下载?

4

1 回答 1

0

您提出的两个解决方案都很好。这仅取决于您是否希望所有数据都通过您的服务器(然后您必须对其进行扩展),或者链接是否可以在您设置的时间限制后过期。

我将这两种方法用于不同的情况。

我很少建议重新实施一个在没有特殊情况(预期的扩展需求、安全问题等)的情况下工作的解决方案。

是的,如果他们在过期时间之后尝试访问已签名的 URL,它将失败。

于 2014-01-10T01:30:00.207 回答