Teraz można to zrobić na 3 sposoby: za pośrednictwem konsoli AWS , wiersza poleceń lub narzędzia wiersza poleceń s3cmd .
Instrukcje konsoli AWS
To jest teraz zalecane rozwiązanie. Jest to proste, ale może zająć trochę czasu.
- Zaloguj się do konsoli zarządzania AWS
- Przejdź do wiadra S3
- Wybierz wszystkie pliki według trasy
- Z menu wybierz „Więcej”
- Wybierz „Zmień metadane”
- W polu „Klucz” wybierz „Cache-Control” z menu rozwijanego max-age = 604800Enter (7 days) for Value
- Naciśnij przycisk „Zapisz”
( dzięki @biplob - poniżej okaż mu trochę miłości )
Rozwiązanie wiersza poleceń AWS
Pierwotnie, kiedy tworzyłem te zasady dotyczące wiadra, nie było wyjścia, więc pomyślałem, jak to zrobić za pomocą aws-cli i jest całkiem sprytny. Podczas badań nie mogłem znaleźć żadnych przykładów na wolności, więc pomyślałem, że opublikuję kilka moich rozwiązań, aby pomóc potrzebującym.
UWAGA: Domyślnie aws-cli kopiuje tylko bieżące metadane pliku, NAWET JEŚLI OKREŚLISZ NOWE METADANE.
Aby użyć metadanych określonych w wierszu poleceń, należy dodać flagę „--metadata-Directive REPLACE”. Oto kilka przykładów.
Dla jednego pliku
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
Dla całego zasobnika (uwaga - flaga rekurencyjna):
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
Trochę gotcha, które znalazłem, jeśli chcesz zastosować go tylko do określonego typu pliku, musisz wykluczyć wszystkie pliki, a następnie dołączyć 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 2034-01-01T00:00:00Z --acl public-read \
--cache-control max-age=2592000,public
Oto kilka linków do instrukcji, jeśli potrzebujesz więcej informacji:
Znane problemy:
"Unknown options: --metadata-directive, REPLACE"
może to być spowodowane nieaktualnym awscli - zobacz odpowiedź @ eliotRosewater poniżej
Narzędzie S3cmd
S3cmd to „narzędzie wiersza poleceń do zarządzania usługami Amazon S3 i CloudFront”. Chociaż to rozwiązanie wymaga git pull, może być prostszym i bardziej wszechstronnym rozwiązaniem.
Aby uzyskać pełne instrukcje, zobacz post @ ashishyadaveee11 poniżej
Mam nadzieję, że to pomoże!