Ich möchte einen einmaligen Download-Link zu einer von Amazon S3 gehosteten Datei erstellen. Dieser Link läuft ab, sobald die Datei heruntergeladen wurde.
Ich möchte, dass diese Datei weiterhin gehostet wird, aber ein Besucher kann die Datei nur einmal herunterladen.
Das Szenario, für das ich das brauche, ist: Ich habe eine Website zum Herunterladen von Dateien, auf der Benutzer für eine Datei bezahlen. Ich möchte, dass der Benutzer die Datei nur einmal von der Website (und Amazon s3) herunterladen kann, ich möchte auch nicht, dass der Benutzer einen direkten Download-Link mit anderen Personen teilen kann.
Wenn dies nicht möglich ist, frage ich mich, ob es effizienter ist, es nach Möglichkeit durch eine IP-Adresse oder ein Cookie einzuschränken?
Es gibt keine Möglichkeit, S3 anzuweisen, einen Link nur einmal zu verwenden. Sie können jedoch einen Link erstellen, der nur bis zu einem bestimmten Zeitpunkt verwendet werden kann. Ich leite den Anforderer auf einen S3-Link um, der in wenigen Minuten abläuft, sodass er oder sie keine Zeit hat, ihn zu teilen. Sie können diese Ablaufzeit sehr kurz machen, sogar einige Sekunden, solange ihr Browser Zeit hat, die Umleitungsantwort zu empfangen und ihr zu folgen.
Sie können einen „einmaligen URL-Generator“-Dienst schreiben (entweder in Form einer Website oder einer Rest-API) und die aws-Funktion für verbundene Benutzer verwenden, um dies zu erreichen.
Betrachten Sie das folgende Verfahren:
- Wenn der Benutzer eine einmalige URL wünscht, sendet er die Anfrage an Ihren Dienst „Generator für einmalige URLs“.
- Ihr Dienst generiert eine “einmalige URL” und gibt sie an den Benutzer zurück. Die URL ist eine Eins-zu-Eins-Zuordnung zu der S3-Ressource, die der Benutzer wünscht.
- Wenn der Benutzer eine Anfrage an die „einmalige URL“ stellt, erstellt der Service einen temporären Benutzer mithilfe der AWS-Verbundbenutzerfunktion und generiert eine vorsignierte S3-URL im Namen des temporären Benutzers.
- Der Dienst sendet die Antwort an den Benutzer zurück und leitet ihn an die vorsignierte URL weiter.
- Der Benutzer folgt der Umleitung und beginnt mit dem Herunterladen der Datei.
- Der Dienst löscht dann den temporären Benutzer. (Oder lässt es verfallen.)
Ich werde Ihnen vorschlagen, Ihre Datei auf einer selbst gehosteten Website zu hosten und den Download mit einer serverseitigen Skriptsprache wie PHP zu handhaben
– Benutzer2533777
19. Oktober 2013 um 15:35 Uhr