0

我正在使用适用于 PHP 的 AWS 开发工具包 1.6.2,并且希望能够将文件上传到存储桶,默认情况下将其设为私有,然后允许某些 IAM 用户进行读取访问。

我创建了一个 IAM 用户“blah@test.com”并调用上传函数,如下所示:

$response = $s3->create_object('my-bucket', 'filename.ext', array(
    'fileUpload' => '/path/to/local/file',
    'headers'    => array('Cache-Control' => 'max-age=0'),
    'acl'        => array(
        array('id' => 'blah@test.com', 'permission' => AmazonS3::GRANT_READ)
    ),
));

这会x-amz-grant-read:emailAddress="blah@test.com"按预期添加标头,但是这样做时我在响应中收到错误:

Code -> "UnresolvableGrantByEmailAddress"
Message -> "The e-mail address you provided does not match any account on record."

我还尝试使用具有非电子邮件用户名的 IAM 用户以及使用完整的 Amazon 资源名称(aRN,例如arn:aws:iam::{account_no}:user/{username}),在这种情况下,我会收到相应的“无效 ID”错误。

我是否误解了 IAM/SDK 文档中的某些内容,或者我做错了什么?

4

1 回答 1

0

在您传递 ACL ID 的地方,它应该是 IAM 用户的实际访问密钥 ID。

于 2013-11-10T11:08:13.323 回答