2014-09-04 10 views
5

Ho un bucket Amazon S3 con circa 300K oggetti e devo impostare l'intestazione Cache-control su tutti loro. Purtroppo sembra che l'unico modo per fare questo, oltre ad uno alla volta, è copiando gli oggetti a se stessi e impostare l'intestazione di controllo della cache in questo modo:Riga di comando di Amazon S3 Copia tutti gli oggetti su se stessi Impostazione controllo cache

è la documentazione per il comando di copia CLI di Amazon S3, ma non ho avuto successo impostando l'intestazione del controllo della cache che lo utilizzava. Qualcuno ha un comando di esempio che potrebbe funzionare per questo. Sto cercando di impostare Cache-Control per max-age = 1814400

Alcuni materiale di fondo:

risposta

8

Per impostazione predefinita, AWS-CLI solo copie di un file metadati correnti, ANCHE SE SPECIFICI IL NUOVO METADATA.

Per utilizzare i metadati specificati sulla riga di comando, è necessario aggiungere il flag '--metadata-DIRECT REPLACE'. Ecco alcuni esempi.

Per un singolo file

aws s3 cp s3://mybucket/file.txt s3://mybucket/file.txt --metadata-directive REPLACE \ 
--expires 2100-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public 

Per un intero secchio:

aws s3 cp s3://mybucket/ s3://mybucket/ --recursive --metadata-directive REPLACE \ 
--expires 2100-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public 

Un po 'Gotcha ho trovato, se solo si vuole applicarlo a un tipo di file specifico, è necessario escludere tutti i file, quindi includere quelli che si desidera.

Solo jpgs e PNG

aws s3 cp s3://mybucket/ s3://mybucket/ --exclude "*" --include "*.jpg" --include "*.png" \ 
--recursive --metadata-directive REPLACE --expires 2100-01-01T00:00:00Z --acl public-read \ 
--cache-control max-age=2592000,public 

Ecco alcuni link al manuale, se avete bisogno di più informazioni:

+0

'marche REPLACE' problemi: ora aggiungi "Cache-Control" funziona, ma questa soluzione interrompe anche l'impostazione "ContentType", cambiandola da esistente, ad es. 'image/png' a' binary/octet-stream'. – geekQ

+0

@geekQ stai dicendo che aggiungendo il controllo della cache, cambia l'impostazione 'ContectType'? Funziona se si specifica 'ContentType' usando il flag --content-type? Il modo in cui i documenti leggono, aws sta indovinando il tipo di contenuto, sono le tue estensioni '* .png'? –

Problemi correlati