Мне было поручено подключиться к ведерке s3 и использовать документацию:
<?php
define('AWS_KEY', 'key in here');
define('AWS_SECRET_KEY', 'key in here');
define('HOST', 'https://console.aws.amazon.com/s3/home?region=us-east-1#');
use Aws\S3\S3Client;
// Establish connection with DreamObjects with an S3 client.
$client = S3Client::factory(array(
'base_url' => HOST,
'key' => AWS_KEY,
'secret' => AWS_SECRET_KEY
));
// list owned buckets
$blist = $client->listBuckets();
echo " Buckets belonging to " . $blist['Owner']['ID'] . ":\n";
foreach ($blist['Buckets'] as $b) {
echo "{$b['Name']}\t{$b['CreationDate']}\n";
}
// list Bucket contents
$o_iter = $client->getIterator('ListObjects', array(
'Bucket' => $bucketname
));
foreach ($o_iter as $o) {
echo "{$o['Key']}\t{$o['Size']}\t{$o['LastModified']}\n";
}
но я получаю ошибку в заголовке любых идей у меня есть ключи доступа, но я не понимаю, как исправить эту проблему?
Вероятно, это плохая идея для жесткого кодирования или использования переменной среды для передачи секретного ключа и ключа доступа.
Лучшим шаблоном проектирования будет использование роли EC2 или использование файла конфигурации SDK (подробнее см. Http://docs.aws.amazon.com/aws-sdk-php/guide/latest/credentials.html)
base_url
аргумент base_url
, это URL-адрес консоли, а не тот из службы. Вы можете просто игнорировать этот параметр (согласно http://docs.aws.amazon.com/aws-sdk-php/guide/latest/configuration.html#client-configuration-options), SDK автоматически построит его для вас