我们的站点允许用户将他们的私有文件存储在我们的站点上,自从我们移动到AWS之后,它就在一个S3桶中。用户可以再次下载他们的文件,但只有在登录到我们的网站后。即使有直接URL (/download.php?fileid=1234
),用户也必须首先登录。
现在,我们有一个下载脚本,它以块的形式从S3中提取文件,然后将其传递给用户。这是好的,甚至允许下载恢复,如果他们的浏览器支持它。没有人会抱怨。
但我有一种唠叨的感觉,我只是做错了,必须有办法让用户直接从S3下载-但再次,只有登录到我们的网站。
我一直在看预先签名的URL -这是我需要的吗?如果是这样的话,那么当用户点击Location: https://bucket.s3...
时,我想我应该做一个/download.php?fileid=1234
重定向。
如何与支持恢复的下载管理器一起工作?会不会因为他们直接带着过期的密钥去S3而停止工作?恢复是如此的不寻常,它可能是值得的速度提高,普通的人不必先通过我们的服务器.
你们如何处理来自S3的安全下载?
发布于 2014-01-09 17:30:00
你提出的两种解决方案都很好。这取决于您是否想让所有数据通过您的服务器(然后必须进行缩放),或者在您设置的时间限制之后链接是否可以过期。
我在不同的情况下使用了这两种方法。
我很少建议重新实现一种解决方案,该解决方案在没有减轻情理的情况下工作(预期的扩展需求、安全问题等等)。
是的,如果他们试图在过期后访问一个签名的URL,它就会失败。
https://stackoverflow.com/questions/21032921
复制