2012-10-18 12 views
8

私はWebアプリケーションを構築しており、Amazon S3を使ってユーザーのアップロードを保存しようとしています。amazon s3 for securityダウンロード方法

私の関心事は、彼がアップロードしたドキュメントのダウンロードリンクをurltoMyS3/doc1234.pdfにして、urltoMyS3/doc1235.pdfを試して、別のユーザー文書を入手してほしくないということです。

私が考えることができる唯一の方法は、WebアプリケーションがS3に接続できるようにしてから、Webアプリケーション上のファイルにアクセスできるかどうかをチェックし、それをクライアントに提供します。この方法の問題は、アプリケーションがまずファイルをダウンロードしなければならず、必然的にユーザーのダウンロードプロセスが遅くなることです。

ユーザーファイルは通常、Amazon S3でどのように処理されますか?それとも、一般的にファイルが公開されるべきではないシナリオでは使用されないのでしょうか?このようなことのための別のサービスはありますか?

おかげ

答えて

8

あなたはあなたの問題を解決するQuery String Authenticationを実装することができます。

クエリ文字列認証は、通常、認証が必要なリソースにHTTPまたはブラウザ にアクセスする場合に便利です。クエリ文字列の シグニチャが要求を保護します。クエリ文字列 の認証要求には有効期限が必要です。エフォochまたはUNIX時間(1970年1月1日以降の秒数 )で将来の有効期限が指定されている場合、 を指定できます。

+1

FYI、あなたのリンクは現在、一般的なウェルカムページにリダイレクトします。 –

0

を参照して、適切なリンクを生成することにより、これを行うことができます。 S3バケットをWebアプリケーションサーバー上のドライブとしてマウントするには、s3fsのようなものを実装することを検討することができます。このようにして、認証を行い、そのファイルがS3に存在することを知らずに、ユーザーに直接ファイルを提供することができます。同様に、アップロードしたファイルをこのs3fsマウントに直接書き込むこともできます。

S3fsでは、S3ディレクトリのローカルキャッシュを構成して、より高速にアクセスすることもできます。

これはクラスタWebサーバー環境でもうまく動作します。これは、各サーバーにs3fsドライブをマウントさせ、独立して読み取り/書き込みを実行できるようにするためです。

A link with more info

関連する問題