mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-21 21:33:28 +01:00
Fixed #62, for upload backup files at S3 using awscli
This commit is contained in:
@@ -63,5 +63,11 @@ RUN set -ex && \
|
|||||||
rm -rf /usr/src/* && \
|
rm -rf /usr/src/* && \
|
||||||
rm -rf /tmp/* /var/cache/apk/*
|
rm -rf /tmp/* /var/cache/apk/*
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
python3 \
|
||||||
|
py3-pip \
|
||||||
|
&& pip3 install --upgrade pip \
|
||||||
|
&& pip3 install awscli
|
||||||
|
|
||||||
### S6 Setup
|
### S6 Setup
|
||||||
ADD install /
|
ADD install /
|
||||||
|
|||||||
@@ -411,34 +411,10 @@ move_backup() {
|
|||||||
mv ${tmpdir}/"${target}" "${DB_DUMP_TARGET}"/"${target}"
|
mv ${tmpdir}/"${target}" "${DB_DUMP_TARGET}"/"${target}"
|
||||||
;;
|
;;
|
||||||
"S3" | "s3" | "MINIO" | "minio" )
|
"S3" | "s3" | "MINIO" | "minio" )
|
||||||
s3_content_type="application/octet-stream"
|
export AWS_ACCESS_KEY_ID=${S3_KEY_ID}
|
||||||
if [ "$S3_URI_STYLE" = "VIRTUALHOST" ] || [ "$S3_URI_STYLE" = "VHOST" ] || [ "$S3_URI_STYLE" = "virtualhost" ] || [ "$S3_URI_STYLE" = "vhost" ] ; then
|
export AWS_SECRET_ACCESS_KEY=${S3_KEY_SECRET}
|
||||||
s3_url="${S3_BUCKET}.${S3_HOST}"
|
export AWS_DEFAULT_REGION=ap-northeast-2
|
||||||
else
|
aws s3 cp ${tmpdir}/${target} s3://${S3_BUCKET}/${S3_PATH}/${target}
|
||||||
s3_url="${S3_HOST}/${S3_BUCKET}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if var_true "$MD5" ; then
|
|
||||||
s3_date="$(LC_ALL=C date -u +"%a, %d %b %Y %X %z")"
|
|
||||||
s3_md5="$(libressl md5 -binary < "${tmpdir}/${target}.md5" | base64)"
|
|
||||||
sig="$(printf "PUT\n$s3_md5\n${s3_content_type}\n$s3_date\n/$S3_BUCKET/$S3_PATH/${target}.md5" | libressl sha1 -binary -hmac "${S3_KEY_SECRET}" | base64)"
|
|
||||||
print_debug "Uploading ${target}.md5 to S3"
|
|
||||||
curl -T "${tmpdir}/${target}.md5" "${S3_PROTOCOL}"://"${s3_url}"/"${S3_PATH}"/"${target}".md5 \
|
|
||||||
-H "Date: $date" \
|
|
||||||
-H "Authorization: AWS ${S3_KEY_ID}:$sig" \
|
|
||||||
-H "Content-Type: ${s3_content_type}" \
|
|
||||||
-H "Content-MD5: ${s3_md5}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
s3_date="$(LC_ALL=C date -u +"%a, %d %b %Y %X %z")"
|
|
||||||
s3_md5="$(libressl md5 -binary < "${tmpdir}/${target}" | base64)"
|
|
||||||
sig="$(printf "PUT\n$s3_md5\n${s3_content_type}\n$s3_date\n/$S3_BUCKET/$S3_PATH/${target}" | libressl sha1 -binary -hmac "${S3_KEY_SECRET}" | base64)"
|
|
||||||
print_debug "Uploading ${target} to S3"
|
|
||||||
curl -T ${tmpdir}/"${target}" "${S3_PROTOCOL}"://"${s3_url}"/"${S3_PATH}"/"${target}" \
|
|
||||||
-H "Date: $s3_date" \
|
|
||||||
-H "Authorization: AWS ${S3_KEY_ID}:$sig" \
|
|
||||||
-H "Content-Type: ${s3_content_type}" \
|
|
||||||
-H "Content-MD5: ${s3_md5}"
|
|
||||||
|
|
||||||
rm -rf ${tmpdir}/*.md5
|
rm -rf ${tmpdir}/*.md5
|
||||||
rm -rf ${tmpdir}/"${target}"
|
rm -rf ${tmpdir}/"${target}"
|
||||||
|
|||||||
Reference in New Issue
Block a user