0

ユーザーが自分のウェブサイトを介して aws からオーディオ コンテンツをダウンロードするための非常に簡単な方法を構築しようとしています。フローは次のとおりです。

  1. ユーザーにダウンロードリンクを提供します。例: www.mysite.com/foobar
  2. ユーザーがリンクをクリックします。
  3. Rails コントローラーで、期限切れの aws s3 URL を作成し、その URL からオーディオ コンテンツのダウンロードを自動的に開始します。
  4. ユーザーのブラウザは、ファイルを保存するかどうかをユーザーに尋ねる必要があります。ユーザーがファイルの保存を受け入れる場合、ユーザーが実際にファイルをダウンロードしたことをログに記録するために、Rails アプリへのコールバックが必要です。

したがって、ユーザーの観点からは、私が決定した URL にアクセスし、プロンプトが表示されたらファイルのダウンロードを受け入れるだけの簡単なプロセスにしたいと考えています。

バックグラウンドでは、aws s3 の URL をユーザーから隠しておき、ユーザーがダウンロードを受け入れた後にコールバック ロジックを柔軟に記述できるようにしたいと考えています。

これを達成するための推奨される方法は何ですか?

4

1 に答える 1

0

これを解決する最善の方法は、有効期間が非常に短い (10 分?) S3 URL を作成し、S3 URL へのリダイレクトを返すことです。これにより、S3 URL がユーザーに公開されますが、脆弱性ではありません。

S3 URL を非表示にする場合は、サーバーを介してダウンロードをプロキシする必要があります。これは高価であり、ワーカー プロセスを長時間消費します。これはお勧めしませんが、S3 リソースを隠す唯一の方法です。

さらに、ダウンロードとビューのトリガーが重要な場合は、添付ファイルのダウンロードをトリガーするように Content-Disposition ヘッダーを設定する必要があります。

  Content-Disposition: attachment; filename="fname.ext"
于 2013-02-07T18:57:43.617 に答える