#!/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 $? }