gpt4 book ai didi

php - 如何从 Amazon AWS S3 Version 2 获取文件大小?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:53 24 4
gpt4 key购买 nike

我被迫使用 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() 下载了整个文件并检测并修复任何错误(比如服务器在下载过程中脱机等...),所以我想到了以下流程:

  1. 我向 AWS 询问文件大小
  2. 我下载文件
  3. 我检查尺寸。如果不相等,我重新下载文件

那么,如何从 AWS 获取文件大小?我找到了 this ,但它不适用于我的版本。

最佳答案

您可以使用 HEAD Object用于确定存储在 S3 上的对象大小的 REST API。

HEAD Object将返回与存储的 S3 对象关联的元数据,包括对象在磁盘上的大小,在 Content-Length 中标题。

http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html#_headObject

关于php - 如何从 Amazon AWS S3 Version 2 获取文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com