Dies ist mein erstes PHP-Projekt, daher kenne ich mich mit PHP überhaupt nicht aus.
Ich versuche, eine Datei in einen S3-Bucket hochzuladen, indem ich die PHP S3-Klasse verwende. Ein Beispiel-Codefragment funktionierte gestern, aber als ich heute wieder damit arbeiten wollte, funktionierte fast genau derselbe Code nicht mehr.
Jetzt erhalte ich nur den folgenden Fehler, der von der Funktion putObject zurückgegeben wird:
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
Ich habe an einigen Stellen gelesen, dass die Serverzeit den Fehler verursachen könnte, also habe ich meine Serverzeit auf Amerika/New_York geändert, aber ich erhalte immer noch das gleiche Problem.
Der PHP-Code, den ich habe, lautet:
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;