2011-10-13 25 views
8

Đây là dự án PHP đầu tiên của tôi, vì vậy tôi thực sự không biết PHP chút nào.Lỗi RequestTimeTooSkewed bằng cách sử dụng PHP S3 Class

Điều tôi đang cố làm là tải tệp lên thùng S3 bằng cách sử dụng lớp PHP S3. Một đoạn mã ví dụ đã hoạt động ngày hôm qua, nhưng khi tôi bắt đầu làm việc với nó một lần nữa ngày hôm nay, hầu như mã giống hệt nhau đã ngừng hoạt động.

Bây giờ tôi chỉ nhận được lỗi sau trả về bởi hàm 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

Tôi đọc một số nơi mà thời gian máy chủ có thể được gây ra lỗi vì vậy tôi thay đổi thời gian máy chủ của tôi đến Mỹ/New_York nhưng vẫn nhận được điều tương tự.

Các mã PHP mà tôi có là: đồng hồ hoặc múi giờ thiết lập

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; 

Trả lời

16

của máy tính của bạn không đúng. Vì S3 sử dụng thời gian hiện tại để xác thực yêu cầu, nếu đồng hồ của bạn bị tắt hơn 15 phút hoặc nếu múi giờ của bạn không đúng (do đó dẫn đến xiên giờ), yêu cầu của bạn sẽ không thành công.

+0

Cảm ơn. Tôi đã thay đổi múi giờ, nhưng không nghĩ đến thời gian thực tế. Đó là khoảng 18 phút. –

+0

Tôi đang làm việc với cài đặt MAMP cục bộ. Tôi đã tải lên S3 làm việc sáng nay, đặt máy tính của tôi để ngủ cho phần còn lại của ngày và điều này bắt đầu xảy ra. Khởi động lại apache đã không hoạt động, nhưng khởi động lại máy tính của tôi đã làm. –

Các vấn đề liên quan