Frage

Auf unserer Website können Benutzer ihre privaten Dateien auf unserer Website speichern, die sich seit dem Umzug zu AWS jetzt in einem S3-Bucket befindet.Benutzer können ihre Dateien erneut herunterladen, jedoch erst nach Anmeldung auf unserer Website.Auch wenn sie die direkte URL haben (/download.php?fileid=1234), müssen Benutzer zuerst angemeldet sein.

Im Moment haben wir ein Download-Skript, das die Datei in Blöcken aus S3 abruft und dann an den Benutzer weitergibt.Dies funktioniert einwandfrei und ermöglicht sogar die Wiederaufnahme des Downloads, wenn der Browser dies unterstützt.Niemand hat irgendwelche Beschwerden.

Aber ich habe dieses quälende Gefühl, dass ich nur bin es falsch machen, und es muss eine Möglichkeit geben, Benutzern das direkte Herunterladen von S3 zu ermöglichen - aber auch hier nur, wenn sie auf unserer Website angemeldet sind.

Ich habe angeschaut Vorsignierte URLs - ist es das, was ich brauche?Wenn ja, dann sollte ich wohl einfach eine machen Location: https://bucket.s3... umleiten, wenn der Benutzer klickt /download.php?fileid=1234?

Wie würde das mit einem Download-Manager funktionieren, der die Wiederaufnahme unterstützt?Würde resume aufhören zu arbeiten, weil sie mit einem dann abgelaufenen Schlüssel direkt zu S3 gehen würden?Das Fortsetzen ist so ungewöhnlich, dass es für normale Leute den Geschwindigkeitsschub wert sein kann, nicht zuerst durch unsere Server gehen zu müssen...

Wie geht ihr mit euren sicheren Downloads von S3 um?

War es hilfreich?

Lösung

Beide von Ihnen vorgeschlagenen Lösungen sind in Ordnung.Es hängt nur davon ab, ob Sie möchten, dass alle Daten über Ihren Server kommen (die Sie dann skalieren müssen) oder ob es in Ordnung ist, dass der Link nach dem von Ihnen festgelegten Zeitlimit abläuft.

Ich benutze beide Ansätze für verschiedene Situationen.

Ich empfehle selten, eine Lösung neu zu implementieren, die ohne mildernde Umstände funktioniert (voraussichtlicher Skalierungsbedarf, Sicherheitsbedenken usw.).).

Und ja, wenn sie nach Ablauf der Ablaufzeit versuchen, auf eine signierte URL zuzugreifen, schlägt dies fehl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top