2013-07-30 100 views
0

我想找出一种方法来授予用户上传到我的存储桶的文件的打开/下载权限。我正在阅读:amazon S3 bucket policy - restricting access by referer BUT not restricting if urls are generated via query string authentication,并用它来实现基于推荐的下载,但我想要做的是: 用户A上传文件,只有用户A和root可以访问该文件。 用户B上传文件,只有用户B和root可以访问该文件。亚马逊AWS每用户权限

我已经为每个文件的元数据添加了一个帐户ID。有可能使用它进行身份验证吗?运行if($ s3-> get_object_metadata('account_id',$ file))=='123'{provide access}?

回答

1

一些事情。

  1. 首先,请为上帝的爱,迁移到AWS SDK for PHP 2。 SDK 1.x即将出台,并且在一段时间内还没有收到任何更新。

  2. 完成此操作后,您可以使用S3Client::putBucketPolicy()通过规范用户标识(a.k.a.,Account ID)授予对存储桶的访问权限。这样,您将管理访问控制的责任推回到S3服务上。当用户试图访问该对象时,如果他们不被允许访问该对象,他们将获得200(201,204,304,307)或403。

  3. 如果您选择继续使用SDK 1.x,则等效方法为AmazonS3::set_bucket_policy()