Files
backup-2/assets/usr/local/sbin/storage/s3.sh
T
2022-12-14 14:57:09 +07:00

50 lines
1.4 KiB
Bash

#!/usr/bin/env bash
S3_HOST_BASE=${STORAGE_HOST:-s3.amazonaws.com}
S3_REGION=${S3_REGION:-us-west}
S3_REMOTE_DIR=${STORAGE_PATH#*/}
S3_BUCKET=${STORAGE_PATH%%/*}
# Добавляем в конце '/'
if [[ -n "${S3_REMOTE_DIR}" ]] && [[ ${S3_REMOTE_DIR} != */ ]]; then S3_REMOTE_DIR="${S3_REMOTE_DIR}/"; fi
# Полное имя архива на хранилище
S3_ARCHIVE=${S3_REMOTE_DIR}${REMOTE_ARCHIVE}
S3_CONNECTION=
if [[ -n "${DEBUG}" ]]; then
echo S3_BUCKET=${S3_BUCKET}
echo S3_REGION=${S3_REGION}
echo S3_REMOTE_DIR=${S3_REMOTE_DIR}
echo S3_ARCHIVE=${S3_ARCHIVE}
fi
storage_login() {
local config=/root/.config/rclone/rclone.conf
[ -f ${config} ] && rm ${config}
echo S3_BUCKET=${S3_BUCKET} > .env
echo S3_REGION=${S3_REGION} >> .env
echo S3_HOST_BASE=${S3_HOST_BASE} >> .env
echo S3_ACCOUNT_ID=${ACCOUNT_ID} >> .env
echo S3_APPLICATION_KEY=${APPLICATION_KEY} >> .env
mkdir -p /root/.config/rclone
mo -s=.env -u /usr/local/sbin/storage/s3.template > ${config}
log "Setup to S3 by ${S3_ACCOUNT_ID} to ${S3_HOST_BASE}" && \
export S3_CONNECTION=true
return $?
}
storage_upload() {
[ -z ${S3_CONNECTION} ] && storage_login
log "Upload \"${ARCHIVE}\" \n\t as \"${S3_ARCHIVE}\" in \"${S3_BUCKET}\""
rclone copy --progress --transfers=5 --update --s3-chunk-size=${CHUNK_SIZE:-100m} ${ARCHIVE} s3:/${S3_BUCKET}/${S3_ARCHIVE}
return $?
}