Files
backup-2/assets/usr/local/sbin/storage/s3.sh
T
2020-08-30 20:37:14 +07:00

53 lines
1.4 KiB
Bash

#!/usr/bin/env bash
S3_HOST_BASE=${STORAGE_HOST:-s3.amazonaws.com}
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_REMOTE_DIR=${S3_REMOTE_DIR}
echo S3_ARCHIVE=${S3_ARCHIVE}
fi
storage_login() {
[ -f /root/.s3cfg ] && rm /root/.s3cfg
echo S3_BUCKET=${S3_BUCKET} > .env
echo S3_HOST_BASE=${S3_HOST_BASE} >> .env
echo S3_ACCOUNT_ID=${ACCOUNT_ID} >> .env
echo S3_APPLICATION_KEY=${APPLICATION_KEY} >> .env
mo -s=.env -u /usr/local/sbin/storage/s3.template > /root/.s3cfg
log "Setup to S3 by ${S3_ACCOUNT_ID}" && \
export S3_CONNECTION=true
return $?
}
storage_download() {
[ -z ${S3_CONNECTION} ] && storage_login
s3cmd get s3://${S3_BUCKET}/${S3_ARCHIVE} ${ARCHIVE}
log "Download \"${S3_ARCHIVE}\" from bucket \"${S3_BUCKET}\" \n\t as \"${ARCHIVE}\""
return $?
}
storage_upload() {
[ -z ${S3_CONNECTION} ] && storage_login
log "Upload \"${ARCHIVE}\" \n\t as \"${S3_ARCHIVE}\" in \"${S3_BUCKET}\""
s3cmd put --multipart-chunk-size-mb=${CHUNK_SIZE:-15} ${ARCHIVE} s3://${S3_BUCKET}/${S3_ARCHIVE}
return $?
}