2011-10-13 2 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 작업을 업로드했고, 컴퓨터를 나머지 시간 동안 잠자기 상태로 만들었고 이것이 시작되었습니다. 다시 시작 아파치가 작동하지 않았지만 내 컴퓨터를 다시 시작했습니다. –

관련 문제