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

问题描述 投票:9回答:2

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

谢谢

file-upload amazon-web-services amazon-s3
2个回答
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上阅读有关对象存储和文件系统之间差异的更多信息


0
投票

首先,您需要在您的AWS账户上创建用户,然后为这些用户分配角色,并授予他们访问AWS服务(如s3)的权限。然后,您为这些角色创建身份访问权限并放松自己。 AWS完成剩下的工作。你不需要打扰云端API。如果按照此处的说明执行所需操作,问题将得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.