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

Posted

技术标签:

【中文标题】允许第三方用户将文件上传到您的 AWS S3 fs [关闭]【英文标题】:Allowing third party users to upload files into your AWS S3 fs [closed] 【发布时间】:2015-02-21 06:13:30 【问题描述】:

我有一个非常棘手的问题:我需要允许我网站的用户将非常大的文件上传到他们的账户,并且我想将这些文件存储在 AWS S3 文件系统上。我不能只编写一个 Web 服务来接收这些并将它们保存在 S3 fs 中,因为在上传过程中各种事情都可能出错,我需要一个复杂的上传客户端。亚马逊提供的那种将文件上传到 S3 的客户端,但我当然不能让我的用户直接访问它。我非常感谢您对此的任何想法!

谢谢

【问题讨论】:

看看Uploadcare。它允许上传大文件并将它们复制到您的 s3 存储桶而不暴露它。 【参考方案1】:

最佳做法是让您的客户端应用程序直接上传到 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阅读更多关于对象存储和文件系统之间的区别@

【讨论】:

【参考方案2】:

首先,您需要在您的 AWS 账户上创建用户,然后为这些用户分配角色,让他们可以访问 AWS 服务,例如 s3。然后,您为这些角色创建身份访问并放松自己。 AWS 完成其余的工作。您无需担心云端 API。如果您按照此处所述执行所需的操作,则问题将得到解决。

【讨论】:

以上是关于允许第三方用户将文件上传到您的 AWS S3 fs [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

AWS S3 大文件分片上传

允许用户将内容上传到 s3

使用 NodeJS 中的特定路径将文件上传到 AWS S3

上传到 S3 之前的 AWS 临时文件?

如何使用 AWS AppSync 将文件上传到 AWS S3

使用 NodeJS 和 AWS S3 将损坏/截断的 mp4 上传到 S3 存储桶