有没有一种简单的方法可以验证文件是否已正确上传到Amazon S3?

时间:2015-09-12 04:54:57

标签: php amazon-web-services amazon-s3

我使用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

我注意到,在上传的10,000个文件中,由于各种原因(如网络问题,服务器问题等)无法上传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文件中没有构建任何类来验证文件是否存在。有人有更好的主意吗?

谢谢:)

1 个答案:

答案 0 :(得分:2)

我真傻。有一个名为getObjectInfo的选项。