允许第三方用户将文件上传到您的AWS S3 fs

Phi*_*int 11 file-upload amazon-s3 amazon-web-services

我在这里遇到一个非常棘手的问题:我需要允许我网站的用户将非常大的文件上传到他们的帐户,我想将这些文件存储在AWS S3文件系统上.我不能只写一个Web服务来接收它们并将它们保存在S3 fs中,因为在上传期间各种各样的事情都可能出错,我需要一个复杂的上传器客户端.亚马逊提供的将文件上传到S3的客户端类型,但当然我不能让我的用户直接访问它.我真的很感激任何想法!

谢谢

Séb*_*acq 15

最佳做法是让您的客户端应用程序直接上传到S3,而不是流经您自己的Web基础结构.这将利用S3的以太大规模并行性质并卸载您的Web基础架构.卸载基础架构将允许使用较少的实例或较小的实例来提供相同数量的流量.因此,您的基础设施成本较低.

您需要编写一个S3 IAM策略,该策略将限制每个用户对S3上自己的"目录"(也称为密钥前缀)的访问权限

看看这篇博客文章:http://blogs.aws.amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in-an-Amazon- S3-bucke

如果您的应用程序是Web应用程序,您甚至可以将客户的浏览器直接上传到S3.请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html,了解如何安全地实现此目的.

关于你的问题的最后一个注释:S3不是文件系统,S3是对象存储.有关对象存储和文件系统之间差异的更多信息,请访问http://www.infoworld.com/article/2614094/data-center/what-is-object-storage-.html