2010-05-10 62 views
2

我有几个PDF文件存储在Amazon S3中。每个文件都与一个用户相关联,只有文件所有者可以访问该文件。我已在我的下载页面中强制执行此操作。但实际的PDF链接指向任何人都可访问的Amazon S3网址。Amazon S3强制访问控制

如何执行访问控制规则,这个网址是什么?(不使我的服务器为所有PDF下载链接的代理)

回答

8

我会建议使用Amazon S3的authenticated REST URLs与到期日期。它们允许临时访问非公共S3对象。

也就是说,如果他们要共享URL,那么阻止他们共享文件本身的原因是什么?

+0

+1两点完全一致。 – 2010-05-10 22:22:56

+0

感谢您的链接。我知道第二个问题,但我的客户担心有人猜测URL(不要问我怎么......)。 – 2010-05-10 23:19:48

+2

好的一面是,它们已经锁定在事实上可以控制的一面。 :-) – ceejayoz 2010-05-11 02:04:53

6

您的S3帐户上的每个文件都可以具有特殊访问权限(ACL)。您应该将您所有的PDF ACL设置为private。然后没有人能够访问它们。

S3有一个API,允许您“临时”授予读取权限。例如Amazon's S3 PHP Library有一个getAuthenticatedURL (string $bucket, string $uri, integer $lifetime, [boolean $hostBucket = false], [boolean $https = false])函数。

这将允许您在规定的时间内(如5分钟)允许访问PDF - 如果您立即将用户重定向到S3,这足够绰绰有余。

+0

+1。感谢你的回答。 – 2010-05-10 23:20:13