54 lines
1.4 KiB
Bash
54 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 ${ARCHIVE} s3://${S3_BUCKET}/${S3_ARCHIVE}
|
|
|
|
return $?
|
|
}
|