2014-09-04 13 views
5

Mam wiadro Amazon S3 z około 300 tys. Obiektów i trzeba ustawić nagłówek Kontroli pamięci podręcznej na wszystkich z nich. Niestety wydaje się, że jedynym sposobem, aby to zrobić, oprócz jednej na raz, to poprzez kopiowanie obiektów do siebie i ustawienie nagłówka sterowania cache w ten sposób:Linia poleceń Amazon S3 Kopiowanie wszystkich obiektów do siebie Ustawianie kontroli pamięci podręcznej

Czy dokumentacja polecenie kopiowania Amazon S3 CLI, ale nie udało mi się ustawić nagłówka kontrolki pamięci podręcznej za jego pomocą. Czy ktoś ma przykładowe polecenie, które by to działało. Próbuję ustawić cache-control do max-age = 1814400

Niektóre materiały tła:

Odpowiedz

8

domyślnie AWS-CLI tylko kopie pliku na bieżące metadane, NAWET JEŚLI WYBRASZ NOWĄ METADATĘ.

Aby użyć metadanych określonych w linii komend, należy dodać flagę "WYMIEŃ dyrektywę --metadata". Oto kilka przykładów.

W przypadku pojedynczego pliku

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 

Dla całego wiadra:

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 

Trochę haczyka znalazłem, jeśli tylko chcą, aby zastosować go do określonego typu pliku, musisz wykluczyć wszystkie pliki, a następnie uwzględnić te, które chcesz.

tylko JPG i 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 

Oto linki do instrukcji, jeśli potrzebujesz więcej info:

+0

'REPLACE' marki problemy: teraz dodaj "Cache-Control" działa, ale to rozwiązanie również łamie ustawienie "ContentType", zmieniając je z istniejących, np. 'image/png' na' binary/octet-stream'. – geekQ

+0

@geekQ Czy mówisz, że dodanie kontroli cache zmienia ustawienie "ContectType"? Czy to działa, jeśli podasz "ContentType" przy użyciu flagi --content-type? Sposób, w jaki docs czyta, aws odgaduje typ zawartości, czy twoje rozszerzenia są "* .png"? –