Ich erstelle eine Webanwendung und untersuche Amazon S3, um Benutzeruploads zu speichern.
Meine Sorge ist, ich möchte nicht, dass Benutzer A seinen Download-Link für ein Dokument sieht, das er hochgeladen hat, urltoMyS3 / doc1234.pdf und versuchen Sie urltoMyS3 / doc1235.pdf, und holen Sie sich ein weiteres Benutzerdokument.
Ich kann mir das nur so vorstellen, dass ich der Webanwendung nur erlaube, eine Verbindung zu S3 herzustellen, dann zu überprüfen, ob der Benutzer Zugriff auf eine Datei in der Webanwendung hat, die Webanwendung die Datei herunterladen kann und dann servieren Sie es dem Kunden. Das Problem bei dieser Methode ist, dass die Anwendung die Datei zuerst herunterladen muss und den Downloadprozess für den Benutzer zwangsläufig verlangsamen würde.
Wie werden Benutzerdateien normalerweise mit Amazon S3 verarbeitet? Oder wird es einfach nicht in einem Szenario verwendet, in dem die Dateien nicht öffentlich sein sollten? Gibt es einen anderen Service für so etwas?
Danke
Sie können Abfrage-String-Authentifizierung implementieren, wodurch Ihr Problem gelöst wird.
Die Abfragezeichenfolgenauthentifizierung ist nützlich für die Angabe von HTTP oder Browser Zugriff auf Ressourcen, die normalerweise eine Authentifizierung erfordern würden. Das Signatur in der Abfragezeichenfolge sichert die Anfrage. Abfragezeichenfolge Authentifizierungsanforderungen erfordern ein Ablaufdatum. Sie können angeben jede zukünftige Ablaufzeit in der Epoche oder UNIX-Zeit (Anzahl der Sekunden seit dem 1. Januar 1970).
Sie können dies tun, indem Sie die entsprechenden Links generieren, siehe folgende
Wenn die zeitgebundene Authentifizierung nicht funktioniert (wie in anderen Antworten vorgeschlagen). Sie könnten in Erwägung ziehen, etwas wie s3fs zu implementieren, um Ihren S3-Bucket als Laufwerk auf Ihrem Webanwendungsserver bereitzustellen. Auf diese Weise können Sie einfach Ihre Authentifizierung vornehmen und dann die Datei direkt an den Benutzer senden, ohne dass Sie eine Vorstellung davon haben, dass sich die Datei in S3 befindet. Ebenso können Sie hochgeladene Dateien einfach direkt in dieses s3fs-Mount schreiben.
MitS3fs können Sie außerdem einen lokalen Cache des S3-Verzeichnisses auf Ihrem Computer für einen schnelleren Zugriff konfigurieren.
Dies funktioniert auch in einer Cluster-Webserver-Umgebung gut, da Sie einfach jeden Server das s3fs-Laufwerk mounten lassen können und unabhängig davon ausführen / lesen / schreiben können.
Tags und Links amazon-s3 amazon-web-services