我正试图找出一种方法来授予用户上传到我的存储桶的文件的打开/下载权限。我正在读这个: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可以访问该文件。
我已经在每个文件的元数据中添加了帐户ID。是否可以使用它进行身份验证?运行if($ s3-> get_object_metadata('account_id',$ file))=='123'{提供访问权限}?
答案 0 :(得分:1)
有几件事。
首先,请为了上帝的爱,请迁移到AWS SDK for PHP 2。 SDK 1.x即将推出,并且暂时没有收到任何更新。
完成此操作后,您可以使用S3Client::putBucketPolicy()通过Canonical User ID(a.k.a。,帐户ID)授予对存储桶的访问权限。这样,您就可以将管理访问控制的责任推回到S3服务上。当用户尝试访问该对象时,如果不允许他们访问该对象,他们将获得200(201,204,304,307)或403.
如果您选择使用SDK 1.x,则等效方法为AmazonS3::set_bucket_policy()。