171 votes

Définir le cache-control pour l'ensemble du bucket S3 automatiquement (en utilisant des stratégies de bucket?)

Je dois définir les en-têtes de contrôle-cache pour l'ensemble d'un bucket s3, à la fois pour les fichiers existants et futurs, et j'espérais le faire via une politique de bucket. Je sais que je peux modifier les existants et je sais comment les spécifier lors de l'envoi si je les télécharge moi-même, mais malheureusement l'application qui les télécharge ne peut pas définir les en-têtes car elle utilise s3fs pour copier les fichiers là-bas.

1 votes

Pour toute personne consultant cette question dans le contexte de définir cache-control: max-age sur une distribution CloudFront: voir cette réponse sur un autre fil de discussion; une autre solution, pour toute personne transmettant des ressources via un script de déploiement avec aws s3: définissez une valeur via --cache-control max-age=.

0voto

flinth Points 698

Cet article ci-dessous pourrait vous aider, il y a des sujets sur comment le faire en code et dans l'interface utilisateur de Bucket Explorer. Malheureusement, je ne trouve aucun moyen de le faire automatiquement.

http://www.bucketexplorer.com/documentation/amazon-s3--how-to-set-cache-control-header-for-s3-object.html

0voto

Ajout à la réponse de @roens.

Si vous utilisez S3 avec Cloudfront, vous pouvez facilement utiliser non seulement Cloudfront, mais aussi la mise en cache du navigateur. Pour que cela fonctionne, il suffit de spécifier l'en-tête cache-control dans la réponse.

  1. Allez à Cloudfront
  2. Allez à votre distribution et modifiez le comportement
  3. Allez à la politique des en-têtes de réponse
  4. Définissez une politique personnalisée avec cache-control "max-age=604800" (7 jours) et orgin-override activé.
  5. Maintenant, vous devriez avoir un cache navigateur de 7 jours sur tous vos fichiers dans ce bucket S3.

Remarque: Dans S3, vous devriez spécifier cela pour chaque fichier, ce qui pourrait ne pas être adapté pour votre application. De plus, vous devriez définir une politique d'en-tête de réponse pour transmettre l'en-tête cache-control, si vous utilisez S3 avec Cloudfront.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X