1

S3 バケットと頻繁にファイルを交換する AWS EC2 サーバーがあり、AWS PHP SDK (バージョン 1.6) を使用してすべてのトランザクションを実行しています。1 つの方法は、次のようにget_objectメソッドを使用することです。

$response = $s3->get_object($bucket, 'large_video.mov', array(
    'fileDownload' => 'large_video.mov'
));

この方法は非常に遅いです。2GB のファイルを EC2 サーバーにダウンロードするには、20 分以上かかります。wget別の方法として、非常に高速 (約 40MB/秒)な linux コマンドを使用することもできます。

get_object が非常に遅い理由に関するドキュメントが見つかりません。get_object を使用して実行される追加のアクションはありますか、または間違って使用していますか? バケットとインスタンスの両方が同じ領域にあります。get_objectが よりもはるかに遅い理由について、いくつかの洞察をいただければ幸いですwget

4

1 に答える 1

0

get_object() はリクエストを cURL の PHP バインディングに渡すだけで、S3 API にヒットし、バイナリ データが返されます。それだけです。魔法のようなことは何も起きていません。

私が考えることができる唯一のことは、オブジェクトが存在する領域を指すように SDK でエンドポイントを設定していないということです。とにかく、試してみる価値はあります。

于 2013-08-16T05:16:56.087 に答える