AWS S3 behandelt 403 ordnungsgemäß, nachdem getSignedUrl abgelaufen ist
Ich versuche, die 403 ordnungsgemäß zu handhaben, wenn ich eine S3-Ressource über eine abgelaufene URL besuche. Derzeit wird eine amz xml-Fehlerseite zurückgegeben. Ich habe eine 403.html-Ressource hochgeladen und dachte, ich könnte zu dieser umleiten.
Die Bucket-Ressourcen sind Assets, die von meiner App gespeichert / abgerufen wurden. Beim Lesen der Dokumente habe ich die Bucket-Eigenschaften so festgelegt, dass der Bucket als statische Webseite behandelt wird, und eine 403.html in das Bucket-Stammverzeichnis hochgeladen. Alle öffentlichen Berechtigungen werden blockiert, mit Ausnahme des öffentlichen GET-Zugriffs auf die Ressource 403.html. In den Bucket-Eigenschaften und Website-Einstellungen habe ich die 403.html als Fehlerseite angegeben. Besuchhttp://<bucket>.s3-website-us-east-1.amazonaws.com/some-asset.html
leitet richtig zu @ weithttp://<bucket>.s3-website-us-east-1.amazonaws.com/403.html
Allerdings, wenn ich aws-sdk js / node benutze und Methode aufrufegetSignedUrl('getObject', params)
Um die signierte URL zu generieren, wird eine andere Host-URL zurückgegeben:https://<bucket>.s3.amazonaws.com/
Das Aufrufen abgelaufener Ressourcen dieser Methode wird nicht zu 403.html umgeleitet. Ich vermute, da die Host-Adresse unterschiedlich ist, ist dies der Grund, warum sie nicht automatisch umgeleitet wird.
Ich habe auch statische Website-Routing-Regeln für Bedingung @ eingerichte
<Condition>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>403.html</ReplaceKeyWith>
</Redirect>
Trotzdem werden die signierten URLs nicht umgeleitet. Ich weiß nicht, wie ich mit diesen abgelaufenen URLs umgehen soll. Jede Hilfe wäre sehr dankbar.