Sie erhalten keine zuvor signierte URL "vom Server". Die Signaturberechnung erfolgt auf dem Client. Pre-signed URLs werden tatsächlich auf Ihrem Computer und nicht von dem Dienst berechnet.
Wenn Sie ein aktuelles SDK verwenden, wird wahrscheinlich Signature V4 verwendet. Wenn die signierte URL X-Amz-Signature=
enthält, bestätigt dies V4. Der ältere V2-Algorithmus verwendet nur Signature=
in einer signierten URL.
Wenn Ihre Unterschrift ist in der Tat V4, dann sehen Sie eine beabsichtigte Einschränkung:
A presigned URL kann für maximal sieben Tage gültig sein, weil der Signaturschlüssel Sie in Signaturberechnung aufbrauchen gültig ist zu sieben Tagen.
http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
Wenn Sie bereits V2 verwenden, sollten Sie in der Lage sein, URLs mit Ablaufzeiten unterzeichnen noch im Jahr 2038. Wenn Sie V4 verwenden, können Sie rund um die Einschränkung zu umgehen durch die Umstellung auf benutze V2, aber das ist nicht ratsam. V2 wird in neueren S3-Regionen, wie Frankfurt, nicht unterstützt. Wenn Sie Ihre AWS-Zugriffsschlüssel wie gewünscht drehen, werden auch alle Signaturen, die mit diesem Schlüssel erstellt wurden, ungültig.
In den meisten Fällen ist es die korrektere Methode, die signierte URL zu generieren, wenn Sie sie benötigen. Diese Operation erfordert, wie erwähnt, keine Interaktion mit dem S3-Dienst und kann typischerweise in Echtzeit ausgeführt werden.
Wenn Sie einem bestimmten Benutzer Zugriff auf einen "direkten Link" gewähren möchten, sollten Sie einen Endpunkt in Ihrer Anwendung erstellen, in dem die Anmeldeinformationen des Benutzers ausgewertet werden können. An diesem Punkt können Sie eine signierte URL generieren und den Browser umleiten HTTP 302
Antwort.
TL: DR - v4 Unterzeichnung Algo erlaubt nur 7 Tage. (Zu v4 aus der Dokumentation: Diese neueste Signaturversion wird in allen Regionen unterstützt und alle neuen Regionen nach dem 30. Januar 2014 unterstützen nur die Signaturversion 4.) Sie sollten also die vordefinierte URL bei Bedarf generieren. – HopeKing