10

カスタム フィールド「ファイルのダウンロード」を使用して ModelAdmin を拡張しました。これは、次のような Django プロジェクトの URL へのリンクです。

http://www.myproject.com/downloads/1

そこで、S3 バケットに保存されているファイルを提供したいと考えています。バケット内のファイルは一般公開されておらず、ユーザーは直接アクセスできない場合があります。今、私はしたいです

  • ファイルをサーバー メモリにロードする必要がないようにします (これらはマルチ GB ファイルです)。
  • サーバー上に一時ファイルを置かないようにする

理想的な解決策は、Django が S3 チャンクをユーザーに直接ストリーミングするプロキシとして機能するようにすることです。boto を使用していますが、チャンクをストリーミングする可能性が見つかりませんでした。何か案は?

ありがとう。

4

2 に答える 2

10

プロキシするのではなく、単純にリダイレクトしないのはなぜですか?

www.myproject.com/downloads/1 の django ビューを使用して、S3 ストレージ URL への HTTP リダイレクトを提供します。時間制限のある認証済み URL を生成できます。たとえば、こちらを参照してください https://docs.aws.amazon.com/AmazonS3 /latest/dev/ShareObjectPreSignedURL.html

その後、クライアントはファイルを S3 から直接ダウンロードしますが、コンテンツは依然として安全であり、Django アプリケーションを介してアクセスする必要があります

于 2010-05-18T14:05:12.540 に答える