【问题标题】:Offering users downloads from S3 buckets: Am I doing it wrong?为用户提供从 S3 存储桶下载:我做错了吗?
【发布时间】:2014-01-09 22:55:29
【问题描述】:

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

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

但是我有一种烦人的感觉,我只是做错了,并且必须有某种方法可以让用户直接从 S3 下载 - 但同样,只有在登录的情况下到我们的网站。

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

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

你们如何处理从 S3 进行的安全下载?

【问题讨论】:

    标签: amazon-web-services amazon-s3 download resume-download


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 并且您可以将签名 URL 的到期日期设置为未来。
    猜你喜欢
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2021-09-13
    相关资源
    最近更新 更多