通过AWS PHP SDK授予IAM用户对AWS S3文件的权限
有没有办法通过AWS PHP SDK授予特定IAM用户或组对AWS S3文件的完全权限 我尝试了以下命令:通过AWS PHP SDK授予IAM用户对AWS S3文件的权限,php,amazon-web-services,amazon-s3,amazon-iam,Php,Amazon Web Services,Amazon S3,Amazon Iam,有没有办法通过AWS PHP SDK授予特定IAM用户或组对AWS S3文件的完全权限 我尝试了以下命令: // Grant permissions via user id $s3->putObjectAcl(array( 'Bucket' => '[Bucket name]', 'Key' => '[File location in bucket]', 'Grants' => array( array
// Grant permissions via user id
$s3->putObjectAcl(array(
'Bucket' => '[Bucket name]',
'Key' => '[File location in bucket]',
'Grants' => array(
array(
'Grantee' => array(
'ID' => '[User ID from IAM API]',
'Type' => 'CanonicalUser'
),
'Permission' => 'FULL_CONTROL'
)
)
));
// Grant permissions via group id
$s3->putObjectAcl(array(
'Bucket' => '[Bucket name]',
'Key' => '[File location in bucket]',
'Grants' => array(
array(
'Grantee' => array(
'ID' => '[Group ID from IAM API]',
'Type' => 'Group'
),
'Permission' => 'FULL_CONTROL'
)
)
));
但它们总是抛出以下错误:
Argument format not recognized
有人能告诉我我做错了什么吗
任何帮助都将不胜感激。在上面的代码中,您没有指定源文件,因此引发了错误。下面是更新的代码,它将帮助您解决此问题
// Grant permissions via user id
$s3->putObjectAcl(array(
'Bucket' => '[Bucket name]',
'Key' => '[File location in bucket]',
'SourceFile' => '[File to be uploaded location]', // add this line
'Grants' => array(
array(
'Grantee' => array(
'ID' => '[User ID from IAM API]',
'Type' => 'CanonicalUser'
),
'Permission' => 'FULL_CONTROL'
)
)
));
这很有效。谢谢你的帮助!另外,对于其他在授权方面遇到问题的人,我发现使用ACP属性更容易调用特定于用户的权限。