Это моя первая работа с AWS, поэтому приведенный ниже вопрос может быть очень простым для многих, но мне нужна небольшая помощь.
Когда я перехожу к https://hello-world.s3-ca-central-1.amazonaws.com/
, я получаю ответ ниже в своем браузере.
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2007-01-01/">
<Name>hello-world</Name>
<Prefix></Prefix>
<Marker></Marker>
<MaxKeys>1000</MaxKeys>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>data-1.json</Key>
<LastModified>2017-01-01T10:00:00.000Z</LastModified>
<ETag>"1234567890qwertyui"</ETag>
<Size>12345</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Предположим, что это общедоступная корзина S3. Как я могу получить данные, хранящиеся в data-1.json
, если у меня нет учетных данных (насколько я знаю, мне не нужны учетные данные для общедоступных корзин)? Я просмотрел документацию и сообщения в блогах, но не смог найти ни одного примера, в котором не используются учетные данные.
Я придумал код ниже после проверки https://github.com/awslabs/aws-php-sample, но в нем также упоминается, что мне нужны учетные данные https://github.com/awslabs/aws-php-sample#basic-configuration
$s3 = new Aws\S3\S3Client([
'version' => '2007-01-01',
'region' => 'ca-central-1'
]);
$result = $s3->getObject([
'Bucket' => 'hello-world',
'Key' => 'data-1.json'
]);
echo $result['Body'];
Примечание. Я буду использовать платформу Symfony.