1

EdgeCast または Amazon S3 でアップロードされた画像を保存する必要がある Web アプリケーションがあります。そのためには、最初にこれらの画像を EdgeCast / S3 に再アップロードする必要があります。私が考えることができるいくつかのオプションがあります:

  1. インライン curl re-uploadを実行します。これにより、目的の EdgeCast / S3 API を使用して画像がアップロードされます。欠点は、同時アップロードではサーバーの負荷が非常に大きくなることです。
  2. キューの再アップロード。私はそれが可能であることを知っていますが、それを行う方法がわかりません。
  3. 再アップロードを気にせず、クライアント エンドから EdgeCast / S3 に直接アップロードしてください。
  4. EdgeCast/S3 の FTP をファイルシステムにマウントし、アップロードされたファイルをコピーするだけで、あとは FTP デーモンに任せます。

最適なソリューションはどれですか? 他に解決策はありますか? 1か2だと思います。

編集:私のアプリケーションはPHPです

4

4 に答える 4

3

EdgeCast についてはよくわかりませんが、Amazon S3 でこれを行う最善の方法は、ファイルをファイル サーバーに直接 POST することでした。http://doc.s3.amazonaws.com/proposals/post.htmlを参照してください。

このようにすると、HTML フォームにフォルダー ID、ファイル名、公開鍵、タイムスタンプなどのフィールドを指定して、安全で自分だけがサーバーにアップロードできるようになります。リダイレクト先のページからアップロードが完了すると、サーバーはブラウザをリダイレクトします。クエリ文字列を調べて、アップロードが成功したかどうかを確認し、FileID を DB に記録します。

サーバーの負荷を軽減し、ユーザーに高速なエクスペリエンスを提供するのに最適ですが、アップロードが成功しても DB 挿入が失敗した場合、ファイルが孤立する可能性があります。

于 2010-12-16T11:54:23.210 に答える
1

EdgeCast ストレージは、Rsync/sFTP 構成をサポートし、ストレージ サーバーからコンテンツを自動的に同期します。EdgeCast は、別の Web サーバーからコンテンツをキャッシュに自動的にプルする「リバース プロキシ」または「カスタマー オリジン」構成もサポートしています。この顧客起点の場所として S3 を使用するか、EdgeCast 独自のクラウド ストレージ サービスまたは EdgeCast ネットワーク外の他の Web サーバーを使用できます。

于 2010-12-17T01:51:07.810 に答える
0

私がやっていることは、ファイルを一時ディレクトリにアップロードしてから、ファイルをAWSにPUTするcronスクリプトを実行して、エンドユーザーがアップロードプロセスにかかる時間を長くしないようにすることです。

于 2010-12-16T12:14:29.307 に答える
0

AWS は、これを行うための PHP 用の SDK を提供しています。マルチパート アップロードもサポートされており、開発者にとっては朗報です。

AWS SDK for PHP も再試行ロジックを実行し、(Multipart を使用している場合はこれを行う必要があります) 失敗したアップロードを再開できることに注意してください。

于 2010-12-17T01:59:31.430 に答える