Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RequestTimeTooSkewed Error using PHP S3 Class

This is my first PHP project, so I really don't know PHP at all.

What I am trying to do is upload a file to an S3 bucket using the PHP S3 class. An example snippet of code was working yesterday, but when I went to start working with it again today, almost the exact same code stopped working.

Now I just get the following error returned by the putObject function:

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

I read some places that the server time could be causing the error so I changed my server time to America/New_York but still get the same thing.

The PHP code that I have is:

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;
like image 470
Dave Long Avatar asked Oct 13 '11 03:10

Dave Long


1 Answers

Your computer's clock or time zone setting is incorrect. Because S3 uses the current time to authenticate requests, if your clock is off by more than 15 minutes, or if your time zone is incorrect (thus leading to a skew of hours), your requests will fail.

like image 172
bdonlan Avatar answered Oct 13 '22 21:10

bdonlan