RequestTimeTooSkewed Ошибка при использовании класса PHP S3 - PullRequest
8 голосов
/ 13 октября 2011

Это мой первый 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 Ответ

16 голосов
/ 13 октября 2011

Неверные настройки часов или часового пояса вашего компьютера.Поскольку S3 использует текущее время для проверки подлинности запросов, если ваши часы выключены более чем на 15 минут или если ваш часовой пояс неправильный (что приводит к перекосу часов), ваши запросы не будут выполнены.

...