/ / Ustaw kodowanie zawartości na określone pliki za pomocą polecenia aws - amazon-s3, aws-cli

Ustaw kodowanie treści na określone pliki za pomocą polecenia aws - amazon-s3, aws-cli

Wdrażam aplikację statyczną za pomocą polecenia aws. Kopiuję wszystkie pliki z mojego folderu do segmentu s3 za pomocą tego polecenia:

aws s3 sync C:app s3://myBucket

Chcę ustawić kodowanie zawartości na gzip tylko do plików js, jpg i html. Udało mi się to zrobić dla wszystkich folderów za pomocą tego polecenia: --content-encoding gzip Jak mogę to zrobić tylko dla określonego typu plików?

Odpowiedzi:

0 dla odpowiedzi № 1

To jest stare, ale musiałem znaleźć sposób, aby to zrobić: nie używam Cloudfront, a proxy, którego używamy, nie obsługuje gzip ... więc:

  1. Wyklucz wszystkie pliki
  2. Uwzględnij poszczególne typy plików według potrzeb
  3. Ustaw odpowiednie kodowanie / opcje

Poniżej dodam także kontrolę dostępu i kontrolę pamięci podręcznej oraz usuwam wszelkie pliki w s3 nieobecne w katalogu lokalnym

Oddzieliłem JS / CSS od wszystkich obrazów, HTML, ale prawdopodobnie nie jest to konieczne.

Miałem jednak dużo kłopotów, nie ustawiając jawnie kodowania treści / pamięci podręcznej dla każdej osoby - w tym, więc ustawiłem ją jak poniżej, aby była bardziej przejrzysta.

Dokumenty AWS, które znalazłem, nie wspominają o żadnej z tych rzeczy

aws s3 sync ./dist/ s3://{bucket} 
--exclude "*" 
--include "static/*.ico" --acl "public-read" --cache-control no-cache 
--include "static/*.png" --acl "public-read" --cache-control no-cache 
--include "*.html" --acl "public-read" --cache-control no-cache 
--include "static/img/*.svg" --acl "public-read" --cache-control no-cache 
--delete 

aws s3 sync ./dist/ s3://{bucket} 
--exclude "*" 
--include "static/js/*.js" --acl "public-read" --cache-control  no-cache --content-encoding gzip 
--include "static/css/*.css" --acl "public-read" --cache-control no-cache --content-encoding gzip 
--delete 

Dość zgrabna poprawa prędkości dla serwowania tylko z s3.