Last active
October 1, 2019 10:52
-
-
Save i-like-robots/7f2168bbbdc105b4b9113d5f9ad24b8e to your computer and use it in GitHub Desktop.
Upload client-side assets to S3 via AWS CLI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
SOURCE_FILES=($(find public/*.{js,css,gz,br,map} 2>/dev/null)) | |
DESTINATION_BUCKET="hashed-assets-eu" | |
DESTINATION_FOLDER="page-kit" | |
for FILE in ${SOURCE_FILES[@]}; do | |
if [[ $FILE == *".gz" ]]; then | |
ENCODING="gzip" | |
elif [[ $FILE == *".br" ]]; then | |
ENCODING="br" | |
fi | |
# the AWS CLI can guess content types but not the original type of compressed files | |
# <https://github.com/aws/aws-cli/issues/3817> | |
case $FILE in | |
*".js"|*".js.gz"|*".js.br") | |
TYPE="application/javascript" | |
;; | |
*".css"|*".css.gz"|*".css.br") | |
TYPE="text/css" | |
;; | |
*".map") | |
TYPE="application/octet-stream" | |
;; | |
esac | |
aws s3 cp $FILE "s3://$DESTINATION_BUCKET/$DESTINATION_FOLDER/$FILE" \ | |
--cache-control=31536000 \ | |
--content-type="$TYPE; charset=utf-8" \ | |
--content-encoding="$ENCODING" \ | |
--acl="public-read" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
i've forked the gist to add appropriate quoting and wrapped things in functions for proper local variable scoping https://gist.github.com/quarterto/4e8bbb7391455d15dbe40be74150dcd3