Amazon s3がホストするファイルへの1回限りのダウンロードリンクを作成します。このリンクは、ファイルがダウンロードされると期限切れになります。
このファイルを引き続きホストしたいのですが、訪問者はファイルを一度しかダウンロードできません。
私がこれを必要とするシナリオは、次のとおりです。ユーザーがファイルの料金を支払うファイルダウンロードWebサイトがあります。ユーザーがファイルをウェブサイト(およびAmazon s3)から一度だけダウンロードできるようにしたい。また、ユーザーが他の人と直接ダウンロードリンクを共有できないようにしたい。
これが不可能な場合は、可能であればIPアドレスまたはCookieで制限する方が効率的ですか?
リンクを1回だけ使用できるようにS3に指示する方法はありません。ただし、指定された時間までしか使用できないリンクを作成できます。私がすることは、リクエスターを数分で期限切れになるS3リンクにリダイレクトすることです。そのため、リクエスターはそれを共有する時間がありません。ブラウザーがリダイレクト応答を受信してそれに従う時間があれば、有効期限を数秒でも非常に短くすることができます。
「ワンタイムURLジェネレーター」サービス(ウェブサイトまたはREST APIのいずれかの形式)を作成し、awsフェデレーションユーザー機能を利用してこれを実現できます。
次の手順を検討してください。
署名付きURLを使用します。このユーザーのみがこのURLを使用できます。 AWS SDKにも依存しています