#php #amazon-s3 #amazon-web-services
#php #amazon-s3 #amazon-веб-сервисы
Вопрос:
Это мой первый PHP-проект, поэтому я действительно совсем не знаю PHP.
То, что я пытаюсь сделать, это загрузить файл в корзину S3, используя класс PHP S3. Пример фрагмента кода работал вчера, но когда я снова начал работать с ним сегодня, почти точно такой же код перестал работать.
Теперь я просто получаю следующую ошибку, возвращаемую функцией putObject:
Warning: S3::putObject(): RequestTimeTooSkewed The difference between the request time and the current time is too large. in /vagrant/LifeInYourWay/S3.php on line 222
Я прочитал в некоторых местах, что серверное время может быть причиной ошибки, поэтому я изменил свое серверное время на America / New_York, но все равно получаю то же самое.
PHP-код, который у меня есть, является:
if(!class_exists('S3')) require_once('S3.php');
// AWS access
if(!defined('awsAccessKey')) define('awsAccessKey', '******');
if(!defined('awsSecretKey')) define('awsSecretKey', '******');
$s3 = new S3(awsAccessKey, awsSecretKey);
$imageName = $_FILES['imageFile']['name'];
$imageTempName = $_FILES['imageFile']['tmp_name'];
$imageLink = $_POST['imageLink'];
if(!strlen($imageLink) || $imageLink == 'http://'){
//create a new bucket
$s3->putBucket("widget-images", S3::ACL_PUBLIC_READ);
//move the file
$put = $s3->putObject($s3->inputFile($imageTempName), "widget-images", $imageName, S3::ACL_PUBLIC_READ);
if($put){
var_dump($put);
$imageUploaded = true;
}else{
$imageUploaded = false;
}
echo($imageUploaded);
}else $image = $imageLink;
Ответ №1:
Неверны настройки часов вашего компьютера или часового пояса. Поскольку S3 использует текущее время для аутентификации запросов, если ваши часы отстают более чем на 15 минут или если ваш часовой пояс неверен (что приводит к смещению часов), ваши запросы завершатся ошибкой.
Комментарии:
1. Спасибо. Я изменил часовой пояс, но не подумал посмотреть на фактическое время. Прошло около 18 минут.
2. Я отрабатываю установку localhost MAMP. Сегодня утром у меня были загрузки на S3, я перевел свой компьютер в спящий режим до конца дня, и это начало происходить. Перезапуск apache не сработал, но перезагрузка моего компьютера сработала.