+ ADD s3 sync

This commit is contained in:
felegy
2022-08-30 08:29:50 +02:00
parent 4ec8bdc471
commit 20ad4c8ede
5 changed files with 520 additions and 281 deletions

View File

59
.dev/ops/s3-sync.sh Executable file
View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
set -e
USAGE="sync-s3-uploads.sh <source env> <target env>"
MY_PATH="`dirname \"$0\"`"
UPLOADS_DIR="$(cd "$MY_PATH" && cd "../../web/app/uploads" && pwd)"
AWS_ACCESS_KEY_ID=$(heroku config:get AWS_ACCESS_KEY_ID)
export AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=$(heroku config:get AWS_SECRET_ACCESS_KEY)
export AWS_SECRET_ACCESS_KEY
AWS_REGION=$(heroku config:get AWS_REGION)
export AWS_REGION
USE_CDN=$(heroku config:get USE_CDN)
USE_CDN=${USE_CDN-false}
BLOG_SLUG=$(heroku config:get BLOG_SLUG)
BLOG_SLUG=${BLOG_SLUG-hvg-blog}
if [[ $USE_CDN == true ]]; then
FOLDER="$BLOG_SLUG/uploads"
else
FOLDER="uploads"
fi
# Check args
if [ -z "$1" ] || [ -z "$2" ]; then
echo $USAGE >&2;
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1;
fi
# Get bucket urls
if [[ $1 == 'local' ]]; then
SOURCE_URL=$UPLOADS_DIR
else
SOURCE_URL=s3://`heroku config:get BUCKET_NAME -r $1`/$FOLDER;
fi;
if [[ $2 == 'local' ]]; then
TARGET_URL=$UPLOADS_DIR
else
TARGET_URL=s3://`heroku config:get BUCKET_NAME -r $2`/$FOLDER;
fi;
echo "You are about to copy all files from $SOURCE_URL to $TARGET_URL";
read -p "Are you sure you want to do this? (y/n)
";
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1;
fi
# Use aws-cli to synchronize buckets
aws s3 sync $SOURCE_URL $TARGET_URL
echo "Success!"
exit 0