我使用https://github.com/tpyo/amazon-s3-php-class中的tpyo Amazon S3.php类来上传文件,如下所示:
# START AMAZON S3
$s3 = new S3('KEY', 'SECRET');
$uploadfile = 'user-' . $uid . '/' . $new_file;
S3::putObject(
S3::inputFile('/home/username/www/images/'.$uid.'/'.$file_name, false),
'bucketname',
$uploadfile,
S3::ACL_PUBLIC_READ,
array(),
array(),
S3::STORAGE_CLASS_STANDARD
);
#END AMAZON S3
我注意到,在上传的大约1万个文件中,由于网络问题、服务器问题等各种原因,可能会有10个或20个文件上传失败。有什么方法可以很容易地验证文件是否上传正确?
我发现的解决方案是用这样的类抓取图像:
function ranger($url){
$headers = array(
"Range: bytes=0-983040"
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
然后检查图像的尺寸,如果宽度和高度为>1
,则知道它存在,但这种方法非常慢,特别是对于大图像。
我看到tpyo S3.php文件中没有内置类来验证该文件是否存在。有人有更好的主意吗?
谢谢:)
我真笨。有一个选项叫getObjectInfo