2013-04-08 82 views
8

我正在构建一个PHP网站,该网站将其内容文件保留在Amazon S3上。网站文件(使用PHP代码)位于传统服务器上。用户将在网站上注册,注册并登录后,他们将可以访问S3上的文件。让只有注册用户从我的Amazon S3存储桶下载

问题是,如何让只有登录的用户下载文件并阻止其他人下载? AWS IAM是否必须以某种方式参与?

我不想过期的网址。我只想给特定用户提供文件访问权限,我不希望他们在任何时间段与其他人分享链接。

将来我还想要限制对注册用户的文件访问 - 取决于用户帐户的类型,用户将有权访问不同的文件。

Thx提前回复!

+4

S3无法实现。您必须首先将文件下载到您的网络服务器,并从那里提供服务或创建到期的URL。 – sprain 2013-04-08 21:22:34

+2

thx!至少你回答了一些问题,而不是像其他问题一样下调我的问题**漏洞 – Val 2013-04-08 21:43:51

+1

+1,我也在寻找解决方案,我认为没有理由把这个问题投下来。 – kiranvj 2013-04-16 04:39:59

回答

3

这可以做到......我使用ROR而不是PHP,其中我的应用程序控制对S3存储桶中数据的访问。我有我的应用程序可以访问的存储区,并且文件访问受其应用程序中凭据的限制。合理?

我有一个公共存储区来存储我的资产(公开可用的图像)和只有我的应用程序可以访问的存储区。我的应用程序中的用户只能根据凭据访问特定的存储桶。

数据库存储对确切s3文件/位置的引用,如何访问它(在事务期间传递的加密凭据和密钥)以及谁可以访问它。

阅读关于从S3存储桶提供Web资产并创建上传表单到S3存储桶的步骤。这会让你了解如何与S3桶进行交互。一旦您可以与存储桶内容进行交互,您就可以使用Web应用程序控制访问权限。

祝你好运!

+0

文件数据如何流式传输?它是通过你的服务器还是直接从S3传递给用户?只有ROR可能吗?我使用PHP和Undesigned定制的S3类:http://undesigned.org.za/2007/10/22/amazon-s3-php-class,我很可能必须坚持签署的URL – Val 2013-04-19 21:20:20

+1

你可以做到这一点... http://aws.amazon.com/articles/1434是你自己实现的直接方法。我不知道PHP,但ROR也有很多插件可以处理它(波载波,轨道直接上传,回形针,swf上传)。 – twinturbotom 2013-04-20 12:38:37

相关问题