Nous avons environ 10 000 images ou plus dans un compartiment dans Amazon S3. Comment définir l'en-tête d'expiration de toutes les images en une fois?
Juste une alerte, j'ai trouvé une excellente solution à l'aide de l'AWS CLI:
aws s3 cp s3://bucketname/optional_path s3://bucketname/optional_path --recursive --acl public-read --metadata-directive REPLACE --cache-control max-age=2592000
Cela définira le contrôle du cache pendant 30 jours. Notez que vous avez la possibilité de copier ou de remplacer les données d'en-tête précédentes. Depuis qu'AWS inclura automatiquement les bonnes données de type méta-contenu pour chaque type de média et que j'avais de mauvais en-têtes, j'ai choisi de tout écraser.
Vous pouvez apporter des modifications en bloc aux fichiers de compartiment avec des applications tierces utilisant l'API S3. Ces applications ne définiront pas les en-têtes en utilisant une seule demande, mais automatiseront les 10 000 demandes requises.
Celui que j'utilise actuellement est Cloudberry Explorer , qui est un utilitaire gratuit permettant d’interagir avec vos compartiments S3. Dans cet outil, je peux sélectionner plusieurs fichiers et spécifier des en-têtes HTTP qui seront appliqués à tous.
Une alternative serait de développer votre propre script ou outil en utilisant les bibliothèques de l'API S3.
Une autre solution consiste à ajouter le paramètre response-expires
dans votre URL. Il définit l'en-tête Expires
de la réponse.
Voir la section Paramètres de demande dans http://docs.aws.Amazon.com/AmazonS3/latest/API/RESTObjectGET.html pour plus de détails.
Cyberduck éditera également les en-têtes.
Vient de traiter 6000 images dans un seau sans accroc.