Gibt es in S3 eine Möglichkeit, ein dynamisches Ablaufdatum festzulegen, das immer ein Jahr nach dem Anforderungsdatum liegt?
Nicht, dass ich wüsste, und ich bezweifle, dass das AWS-Team eine engagierte Unterstützung dafür in Betracht ziehen wird:
Sie wissen wahrscheinlich, dass ein dynamischer Expires: ...
Wert nicht als solcher festgelegt werden kann, da der einzige in einem Expires-Header gültige Wert ein HTTP-Datum ist. Alles andere wird höchstwahrscheinlich als "in der Vergangenheit" interpretiert, so dass die Darstellung nicht zwischengespeichert werden kann. (Siehe z. B. Steuern der Aktualität mit dem Ablauf-HTTP-Header in Mark Nottinghams ausgezeichnetem Caching-Tutorial ).
Diese Schwäche des HTTP 1.0- Expires: ...
Headers wurde jedoch in HTTP 1.1 erkannt und behoben, mit dem eine neue Klasse von Headern, Cache-Control-Antwortheader, eingeführt wurde, um Web-Publishern mehr Kontrolle über ihren Inhalt zu geben und die Einschränkungen von Expires zu beseitigen. (Siehe Cache-Control-HTTP-Header ).
In Bezug auf Ihren Anwendungsfall (und im Allgemeinen) würde ich dringend empfehlen, zunächst ein Cache-Control: max-age=...
Jahr lang auf einen Header zurückzugreifen und die Expires: ...
Abwärtskompatibilität nur dann hinzuzufügen , wenn es einen bestimmten Grund dafür gibt. In diesem Fall müssen Sie jedoch entsprechend Ihrer Frage den Wert tatsächlich gelegentlich anpassen, um eine Verletzung des HTTP 1.1-RFC zu vermeiden, z. B. über ein Skript, das auf die S3-API abzielt .
Cache-control: public, max-age=3600
public
und insbesondere anno-cache
, die die Auswirkungen der ersteren erweitert.