PHP Amazon SDK, доступ к корзине S3 запрещен

#php #amazon-web-services #amazon-s3 #aws-sdk

#php #amazon-веб-сервисы #amazon-s3 #aws-sdk

Вопрос:

Я впервые пытаюсь использовать PHP AWS SDK («aws / aws-sdk-php»: «^ 3.19») для использования S3.

Я создал корзину: ‘myfirstbucket-jeremyc’

Я создал политику :

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::myfirstbucket-jeremyc/*"
            ]
        }
    ]
}
  

Я применил политику к группе, а затем создал пользователя ‘s3-myfirstbucket-jeremyc’ в этой группе.

Мой PHP-код :

 <?php
use AwsS3S3Client;
use AwsS3ExceptionS3Exception;

error_reporting(E_ALL);

require(__DIR__ . '/vendor/autoload.php');

$s3Client = S3Client::factory([
    'credentials' => [
        'key'    => $_SERVER['AWS_S3_CLIENT_KEY'],
        'secret' => $_SERVER['AWS_S3_CLIENT_SECRET']
    ],
    'region' => 'eu-west-1',
    'version' => 'latest',
    'scheme' => 'http'
]);

$result = $s3Client->putObject(array(
    'Bucket' => 'myfirstbucket-jeremyc',
    'Key' => 'text.txt',
    'Body' => 'Hello, world!',
    'ACL' => 'public-read'
    ));
  

Но я получаю эту ошибку:

Ошибка при выполнении «putObject» на «http://s3-eu-west-1.amazonaws.com/myfirstbucket-jeremyc/text.txt «; Ошибка HTTP AWS: ошибка клиента: PUT http://s3-eu-west-1.amazonaws.com/myfirstbucket-jeremyc/text.txt в результате было получено 403 запрещенных ответа

Вы знаете, где я ошибаюсь?

Заранее спасибо!

Ответ №1:

Вы устанавливаете ACL для нового объекта, но вы не разрешили s3:PutObjectAcl .

Комментарии:

1. Спасибо! Это работает, комментируя строку для ACL или добавляя «s3: PutObjectAcl» в политике.