Я искал в Интернете более двух дней и, вероятно, просмотрел большинство задокументированных в Интернете сценариев и обходных путей, но пока у меня ничего не работало.
Я использую AWS SDK для PHP V2.8.7, работающего на PHP 5.3.
Я пытаюсь подключиться к своей корзине S3 с помощью следующего кода:
// Create a `Aws` object using a configuration file
$aws = Aws::factory('config.php');
// Get the client from the service locator by namespace
$s3Client = $aws->get('s3');
$bucket = "xxx";
$keyname = "xxx";
try {
$result = $s3Client->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'Body' => 'Hello World!'
));
$file_error = false;
} catch (Exception $e) {
$file_error = true;
echo $e->getMessage();
die();
}
//
Мой файл config.php выглядит следующим образом:
<?php
return array(
// Bootstrap the configuration file with AWS specific features
'includes' => array('_aws'),
'services' => array(
// All AWS clients extend from 'default_settings'. Here we are
// overriding 'default_settings' with our default credentials and
// providing a default region setting.
'default_settings' => array(
'params' => array(
'credentials' => array(
'key' => 'key',
'secret' => 'secret'
)
)
)
)
);
Выдает следующую ошибку:
Подпись запроса, которую мы рассчитали, не соответствует предоставленной вами подписи. Проверьте свой ключ и метод подписи.
Я уже проверил свой ключ доступа и секрет не менее 20 раз, создал новые, использовал разные методы для передачи информации (например, профиль и включение учетных данных в код), но в данный момент ничего не работает.
secret
высокий) и использует его для вычисления подписи на основе вашего ключа доступа, текущей временной метки и множества других факторов. См. Docs.aws.amazon.com/general/latest/gr/… . Это маловероятно, но, учитывая, что они включают метку времени, возможно, время в вашей локальной среде отключено?