我有一个拥有所有权限的用户。
{
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
我正在使用aws-sdk-php-2在存储桶中放置和复制对象。
http://docs.aws.amazon.com/aws-sdk-php-2/latest/class-Aws.S3.S3Client.html
Put代码运行完美
$client->putObject(array(
'Bucket' => 'kiosk',
'Key' => 'test/orders/test.csv',
'SourceFile' => $sourcePath,
));
在通过https://console.aws.amazon.com/s3检查对象是否在S3上创建后,我将执行下一个脚本。
$result = $client->copyObject(array(
'Bucket' => 'kiosk',
'CopySource' => 'test/orders/test.csv',
'Key' => 'test/test.csv',
));
我得到了致命的错误:
Fatal error: Uncaught Aws\S3\Exception\S3Exception: AWS Error Code: AllAccessDisabled, Status Code: 403, AWS Request ID: XXX, AWS Error Type: client, AWS Error Message: All access to this object has been disabled, User-Agent: aws-sdk-php2/2.2.1 Guzzle/3.3.1 curl/7.19.7 PHP/5.4.13 thrown in phar:///usr/share/pear/AWSSDKforPHP/aws.phar/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 89
手动上传文件console.aws.amazon.com/s3后,我在尝试复制时看到不同的错误:
Fatal error: Uncaught Aws\S3\Exception\AccessDeniedException: AWS Error Code: AccessDenied, Status Code: 403, AWS Request ID: XXX, AWS Error Type: client, AWS Error Message: Access Denied, User-Agent: aws-sdk-php2/2.2.1 Guzzle/3.3.1 curl/7.19.7 PHP/5.4.13 thrown in phar:///usr/share/pear/AWSSDKforPHP/aws.phar/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 89
我还尝试通过console.aws.amazon.com/s3
设置文件和文件夹的权限:被授权者: Everyone、打开/下载和查看权限以及编辑权限
但仍然是同样的错误。
发布于 2013-08-31 08:03:29
我发现了这里的问题所在;作为一名AWS新手,我在这里挣扎了一段时间,直到我意识到您为用户设置的每个策略都需要明确允许您正在使用的服务。
在这种情况下,我没有将用户设置为允许进入S3。
转到IAM,然后转到用户,然后单击拥有您正在使用的凭据的特定用户。从那里转到Permissions选项卡,然后单击Attach User Policy并在select policy template下找到S3策略。这应该可以解决您的问题。
希望这能有所帮助!
发布于 2019-05-08 07:44:28
流行的答案是中肯的,但仍然有问题。必须包含ACL选项。
$this->client->copyObject([
'Bucket' => $this->bucket,
// Added the bucket name to the copy source
'CopySource' => $this->bucket.'/'.$file,
'Key' => str_replace($source, $destination, $file),
'ACL' => 'public-read'
]);
ACL可以是这些值之一'ACL‘=> 'private|public-read|public-read-write|authenticated-read|aws-exec-read|bucket-owner-read|bucket-owner-full-control',
https://stackoverflow.com/questions/16900245
复制相似问题