2


Amazon とファイルのアップロードに関連する別の問題があります。jqueryFileUpload と Amazon API を使用して、ファイルAmazon S3 にアップロードしています。アップロードに成功しましたが、トリックが必要です。
画像をサーバーに保存してから、S3 の方法を使用してそこから S3 に移動する必要がありputObjectFileました。プラグインには、画像をトリミング/サイズ変更するための優れた機能が付属しており、長い間使用してきました。 AWS さん、アップロードでパフォーマンスの問題に直面しています。アップロードにかかる時間が通常よりも長く、従来の方法ではなく AWS S3 を使用しているという疑問が生じます。UploadHandler.php
を変更する必要がありましたこれらは、行われた変更です.AWSアップロードコードの一部をファイルの735行から750行に追加しました

     $bucket = "elasticbeanstalk-2-66938761981";
     $s3 = new S3(awsAccessKey, awsSecretKey);
     $response = $s3->putObjectFile($file_path,$bucket,$file->name,S3::ACL_PUBLIC_READ);
     $thumbResponse = $s3->putObjectFile('files/thumbnail/'.$file->name,$bucket,'images/'.$file->name,S3::ACL_PUBLIC_READ);
     //echo $response;
     //echo $thumbResponse;
     if ($response==1) {
        //echo 'HERER enter!!';
     } else {
          $file->error = "<strong>Something went wrong while uploading your file... sorry.</strong>";
     }
     return $file; 

これはgitのs3クラスへのリンクです。現在のサーバー(Amazonではない)への通常のアップロードでは、同じ画像が15秒でアップロードされますが、Amazon S3では約23秒かかり、より良い解決策を見つけることができません.以前にサーバーに画像を保存する必要がありますそれらをその場で処理してS3に直接アップロードできるかどうかわからないため、 S3にアップロードします。
誰かが問題にアプローチする正しい方法を提案できますか?画像をメモリ内の異なるサイズにサイズ変更し、サーバーに保存するオーバーヘッドを回避して S3 に直接アップロードすることは可能ですか?もしそうなら、誰かが私を正しい方向に導くことができますか?
ご清聴ありがとうございました。

4

1 に答える 1

1

ここでは、さまざまなサイズのイメージのバージョンを作成するためのオーバーヘッドは約 8 秒だと思います。アップロード時のサイズ変更のオーバーヘッドを取り除くために、さまざまなアプローチを取ることができます。基本的な考え方は、アップロード スクリプトが実行を終了して応答を返し、サイズ変更プロセスを別のスクリプトとして実行できるようにすることです。

次のアプローチをお勧めします: アプローチ 1. アップロード中にサイズを変更しないでください。初めてリクエストされたときにのみサイズ変更されたバージョンをオンザフライで作成し、生成された画像をキャッシュして、後のリクエストに直接提供します。Stackoverflowの他のスレッドで、Amazon CloudFront がソリューションとして言及されているのをいくつか見ました。

アプローチ 2. 元の画像のアップロード後に、サイズ変更されたバージョンを作成するためのコードを別の非同期リクエストとして呼び出します。スケーリングされたバージョンが利用可能になるまでに遅延が発生します。したがって、スケーリングされたバージョンが利用可能になるまで、ウェブサイトにプレースホルダー画像を表示するために必要なコードを記述してください。スケーリングされたバージョンがまだ利用可能かどうかを特定する方法を見つける必要があります (たとえば、ファイルが存在するかどうかを確認するか、データベースにフラグを設定します)。試してみたい場合は、非同期 cURL リクエストを作成するいくつかの方法をここで提案します。

どちらのアプローチも同じレベルの複雑さを持つと思います。

この他の質問に対する回答として、いくつかの他のアプローチが提案されています。

于 2013-07-10T10:04:17.873 に答える