S3バケツからのユーザーのダウンロードを提供する:私はそれを間違っていますか?
-
21-12-2019 - |
質問
私たちのサイトでは、ユーザーが私たちのサイトに彼らのプライベートファイルを保存することを可能にします。これは私たちがAWSに移動してからS3バケツにあります。ユーザーは自分のファイルをもう一度ダウンロードできますが、Webサイトにログインした後にのみ。直接URL(/download.php?fileid=1234
)がある場合でも、ユーザーは最初にログインする必要があります。
今、私たちは塊のS3からファイルを引っ張るダウンロードスクリプトを持ち、それをユーザーに渡します。これは大丈夫です、そしてブラウザがそれをサポートしているならば、ダウンロードの再開を許可しても。誰も不満を持っていません。
しかし、私はだけ誤っていることをem>であると私はこのナッグ感を持っています、そして、ユーザーがs3からまっすぐダウンロードできるような方法がある必要があります - しかし、ログインした場合にのみ私たちのサイトに。
Location: https://bucket.s3...
をヒットしたときに/download.php?fileid=1234
リダイレクトを実行するだけです。
再開をサポートするダウンロードマネージャーとどのように機能しますか?それから期限切れのキーを使用してS3に直接進んでいるため、働くのがやめて再開しますか?再開は非常に珍しくありません。
どのようにしてS3から安全なダウンロードをどのように処理しますか?
解決
提案された解決策の両方が大丈夫です。それはあなたのサーバーを介して来るすべてのデータを持っているかどうか、またはあなたが設定した時間制限後にリンクが期限切れになったときのリンクが終わったのかのようなものです。
私はさまざまな状況にこれらのアプローチの両方を使用します。
事情を解除することなく働いている解決策を再実装することはめったにありません(予想されるスケーリングのニーズ、セキュリティ上の懸念など)。
とはい、彼らが有効期限の後に署名されたURLにアクセスしようとすると失敗します。