我有一个AWS EC2服务器,它经常与S3存储桶交换文件,而我正在使用AWS PHP SDK(版本1.6)来执行所有事务。一种方法是使用get_object方法,如下所示:
$response = $s3->get_object($bucket, 'large_video.mov', array(
'fileDownload' => 'large_video.mov'
));
这种方法非常慢!要将2GB文件下载到EC2服务器,需要超过20分钟。另一种方法是使用非常快的Linux wget
命令(大约40MB /秒)!
我找不到任何关于为什么get_object这么慢的文档,是否有使用get_object执行的任何其他操作或我错误地使用它?存储桶和实例都在同一区域。我很感激为什么get_object
比wget
慢得多的一些见解。
答案 0 :(得分:0)
get_object()只是将请求传递给cURL的PHP绑定,然后命中S3 API,然后返回二进制数据。这就是它。没有什么神奇的事情发生。
我唯一能想到的是你没有在SDK中设置端点指向对象所在的区域。无论如何,这都值得一试。