Ora ci sono 3 modi per farlo: tramite la Console AWS , tramite la riga di comando o tramite lo strumento della riga di comando s3cmd .
Istruzioni per la console AWS
Questa è ora la soluzione consigliata. È semplice, ma può richiedere del tempo.
- Accedi alla Console di gestione AWS
- Vai nel secchio S3
- Seleziona tutti i file per percorso
- Scegli "Altro" dal menu
- Seleziona "Modifica metadati"
- Nel campo "Chiave", seleziona "Cache-Control" dal menu a discesa max-age = 604800Enter (7 days) for Value
- Premere il pulsante "Salva"
( grazie a @biplob, per favore dagli un po 'di amore qui sotto )
Soluzione a riga di comando AWS
In origine, quando ho creato questo bucket, le policy non erano possibili, quindi ho capito come farlo utilizzando aws-cli, ed è piuttosto semplice. Durante la ricerca non sono riuscito a trovare alcun esempio in natura, quindi ho pensato di pubblicare alcune delle mie soluzioni per aiutare i bisognosi.
NOTA: per impostazione predefinita, aws-cli copia solo i metadati correnti di un file, ANCHE SE SPECIFICHI NUOVI METADATI.
Per utilizzare i metadati specificati sulla riga di comando, è necessario aggiungere il flag "--metadata-Directive REPLACE". Ecco alcuni esempi.
Per un unico file
aws s3 cp s3://mybucket/file.txt s3://mybucket/file.txt --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public
Per un intero bucket (nota: flag ricorsivo):
aws s3 cp s3://mybucket/ s3://mybucket/ --recursive --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=2592000,public
Ho trovato un piccolo trucco, se vuoi applicarlo solo a un tipo di file specifico, devi escludere tutti i file, quindi includere quelli che desideri.
Solo jpg e png:
aws s3 cp s3://mybucket/ s3://mybucket/ --exclude "*" --include "*.jpg" --include "*.png" \
--recursive --metadata-directive REPLACE --expires 2034-01-01T00:00:00Z --acl public-read \
--cache-control max-age=2592000,public
Ecco alcuni link al manuale se hai bisogno di maggiori informazioni:
Problemi noti:
"Unknown options: --metadata-directive, REPLACE"
questo può essere causato da un awscli obsoleto - vedi la risposta di @ eliotRosewater di seguito
Strumento S3cmd
S3cmd è uno "strumento a riga di comando per la gestione dei servizi Amazon S3 e CloudFront". Sebbene questa soluzione richieda un git pull, potrebbe essere una soluzione più semplice e completa.
Per le istruzioni complete, vedere il post di @ ashishyadaveee11 di seguito
Spero che sia d'aiuto!