【问题标题】:Amazon S3 for file Uploads and caching用于文件上传和缓存的 Amazon S3
【发布时间】:2018-04-17 19:22:18
【问题描述】:

我目前正在使用 PHP 中的 Yii 框架编写一个应用程序,它存储应用程序用户上传的大量文件。我决定,由于文件的数量将不断增加,使用 Amazon S3 存储这些文件是有益的,并且在请求时,服务器可以检索文件并将其发送给用户。 (服务器是同区的EC2实例)

由于文件都是机密文件,服务器必须在允许用户接收文件之前验证用户的身份及其凭据。在这种情况下,有没有办法直接从 S3 将文件发送给用户,或者我必须先将数据拉到服务器,然后再将其提供给用户。

如果有,有什么办法可以将最近上传的文件缓存在本地服务器上,这样就不用去s3找文件了。在大多数情况下,最近上传的文件会被多个客户端重复请求。

任何帮助将不胜感激!

【问题讨论】:

    标签: php yii amazon-s3 amazon-ec2


    【解决方案1】:

    经过身份验证的客户端可以直接从 S3 下载文件,方法是在向客户端显示页面/url 之前在服务器上签署适当的 URL。

    欲了解更多信息,请参阅:http://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html

    请注意,对于机密文件,您可能还需要考虑服务器端/客户端加密。最后,对于静态文件(例如图像),您可能还需要设置适当的缓存头。

    【讨论】:

      【解决方案2】:

      使用 AWS Cloud Front 来处理这些静态文件。与其将文件发送给用户,不如向他们发送文件的链接。链接必须是云端链接,而不是指向 S3 存储桶的直接链接。

      这样做的好处是可以保持服务器上的低负载以及缓存靠近用户的文件以获得更好的性能。

      更多详情在这里Serving Private Content through CloudFront

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-21
        • 1970-01-01
        • 2018-04-12
        • 2010-11-01
        • 2011-11-10
        • 2015-09-25
        • 2015-11-29
        相关资源
        最近更新 更多