2011-10-13 13 views
8

これは私の最初のPHPプロジェクトです。したがって、PHPはまったく分かりません。PHP S3クラスを使用したRequestTimeTooSkewedエラー

私がやっていることは、PHP S3クラスを使用して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

を私はアメリカ/ニューヨークに私のサーバー時刻を変更して、サーバーの時間がエラーを引き起こしている可能性がありますいくつかの場所を読んでますがそれでも同じことが起こります。

私は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; 

答えて

16

お使いのコンピュータのクロックやタイムゾーンの設定が正しくありません。 S3は現在の時刻を使用してリクエストを認証するため、時計が15分以上オフになっているか、タイムゾーンが間違っている(時間がずれている)場合、リクエストは失敗します。

+0

ありがとうございました。私はタイムゾーンを変更しましたが、実際の時間を見ないと思っていました。それは約18分ぐらいだった。 –

+0

私はlocalhost MAMPのインストールをやっています。私はS3にアップロードして今朝働いて、残りの日のうちにコンピュータをスリープ状態にして、これが起き始めました。 Apacheを再起動しても機能しませんでしたが、コンピュータを再起動しました。 –

関連する問題