我被迫使用AWS S3的第2版,因为我无法在此服务器上将PHP更新为5.5以便使用版本3.
我制作了这个PHP脚本来从AWS下载文件,效果很好:
//http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html#_createPresignedUrl
// Get a command object from the client and pass in any options
// available in the GetObject command (e.g. ResponseContentDisposition)
$command = $s3Client->getCommand('GetObject', array(
'Bucket' => $bucket,
'Key' => $objectKey,
'ResponseContentDisposition' => 'attachment; filename="' . $originFilename . '"'
));
// Create a signed URL from the command object that will last for
// 10 minutes from the current time
$signedUrl = $command->createPresignedUrl('+1000 minutes');
$file = file_get_contents($signedUrl);
问题是我想确保file_get_contents()
下载整个文件并检测并修复任何错误(例如服务器在下载过程中脱机等等),所以我认为以下流速:
那么,如何从AWS获取文件大小?我找到了this,但它对我的版本没有用。
答案 0 :(得分:3)
您可以使用HEAD Object
REST API来确定存储在S3上的对象的大小。
HEAD Object
将在Content-Length
标题内返回与存储的S3对象关联的元数据,包括对象磁盘上的大小。
http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html#_headObject