【发布时间】:2014-07-29 05:02:49
【问题描述】:
我有一个 zip 文件,希望用户能够下载。诀窍是我不想让用户看到 url 是什么,我不想将文件下载到我的服务器。
所以我希望用户点击这样的链接:
http://example.com/download/4
哪个服务器端使用这个 url 访问我的 S3 存储桶:
https://s3.amazonaws.com/my-bucket/uploads/4.zip
我在 download($file_id) 函数中尝试了 cURL、使用 S3 方法和各种 headers(),但无法使其正常工作。这一定很容易,对吧?
【问题讨论】:
-
据我所知,您似乎在讨论的一切仍然涉及将文件下载到您的服务器。简单且看似显而易见的解决方案是生成并返回一个过期时间较短的签名 URL,以允许浏览器直接从 S3 直接下载文件。拥有将在几秒钟内过期的网址与拥有文件副本之间没有显着区别,因此,如果您对此方法有疑问,请解释。
-
@Michael-sqlbot 好点。 “简单且看似显而易见的解决方案是生成并返回签名 URL”。我同意这是显而易见的解决方案。您的方法的问题是失去了 url 的品牌以及使您的存储桶结构公开。这些对于业余爱好网站来说并不那么重要,但对于企业来说,它们可以成为现实。
标签: php amazon-web-services amazon-s3 download zip