提供用户从S3存储桶下载:我做错了吗?

时间:2014-01-09 22:55:29

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

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

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

但是我有这种唠叨的感觉,我只是做错了,并且必须有某种方式允许用户直接从S3下载 - 但同样,只有在登录时到我们的网站。

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

如何使用支持恢复的下载管理器?恢复是否会停止工作,因为他们将使用当时过期的密钥直接转到S3?恢复是如此罕见,以至于普通人不必首先通过我们的服务器来提升速度可能是值得的...

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

1 个答案:

答案 0 :(得分:0)

你提出的两个解决方案都没问题。它取决于你是否希望所有数据都通过你的服务器(你必须扩展),或者链接是否在你设置的时间限制后过期。

我在不同情况下使用这两种方法。

我很少建议重新实施一个没有情有可原的解决方案(预期的扩展需求,安全问题等)。

是的,如果他们在到期时间后尝试访问已签名的网址,则会失败。