0

1) アップロードフォームがあります

2) ファイルをローカル ストレージ move_uploaded_file にアップロードします。

3) zend putObject 関数を使用して、ファイルを s3 オブジェクトに移動します。

ファイルサイズが約 30Mb から 40Mb になるまで、すべて問題なく動作します。問題は、80 Mb、100 Mb などの大きなファイルをアップロードしようとすると、s3 に移動するファイルがアップロードを完了するのに時間がかかることです。私のコードは次のようなものです:

$orginalPath = APPLICATION_PATH."/../storage/".$fileName;
move_uploaded_file($data['files']['tmp_name'], "$orginalPath");

$s3 = new Zend_Service_Amazon_S3($accessKey, $secretKey);

$s3->putObject($path, file_get_contents($orginalPath),
    array(Zend_Service_Amazon_S3::S3_ACL_HEADER =>Zend_Service_Amazon_S3::S3_ACL_PUBLIC_READ));

大きなファイルの移動をすばやく処理する方法を教えてください

$s3->registerStreamWrapper("s3");


file_put_contents("s3://my-bucket-name/orginal/$fileName", file_get_contents($orginalPath));

しかし、ファイルを移動するのに同じくらい時間がかかります。

したがって、ファイルを s3 バケットにすばやく移動する効率的な方法はありますか?

4

2 に答える 2

0

S3 機能へのより直接的な POST の使用を検討できます。AWS SDK for PHP には、フォームのデータを生成するのに役立つクラスがあります

于 2013-10-07T16:45:19.363 に答える