这是我的第一个PHP项目,所以我真的一点也不了解PHP。
我想做的是使用 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
我读到一些地方可能是服务器时间导致错误,所以我将服务器时间更改为 America/New_York,但仍然得到相同的结果。
我的 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;
您计算机的时钟或时区设置不正确。由于 S3 使用当前时间来验证请求,因此如果您的时钟偏差超过 15 分钟,或者您的时区不正确(从而导致小时数偏差),您的请求将会失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)