acme.sh/deploy/aws_s3.sh
2021-10-04 15:28:25 +01:00

56 lines
1.5 KiB
Bash

#!/usr/bin/env sh
#Here is a script to deploy cert to an Amazon S3 bucket.
#returns 0 means success, otherwise error.
# shellcheck source=common/aws.sh
. "$LE_WORKING_DIR/common/aws.sh"
######## Public functions #####################
#domain keyfile certfile cafile fullchain
aws_s3_deploy() {
_cdomain="$1" _ckey="$2" _ccert="$3" _cca="$4" _cfullchain="$5"
_debug _cdomain "$_cdomain"
_debug _ckey "$_ckey"
_debug _ccert "$_ccert"
_debug _cca "$_cca"
_debug _cfullchain "$_cfullchain"
_bucket="${AWS_S3_BUCKET:-$(_readdomainconf Aws_S3_Bucket)}"
_prefix="${AWS_S3_PREFIX:-$(_readdomainconf Aws_S3_Prefix)}"
_region="${AWS_S3_REGION:-$(_readdomainconf Aws_S3_Region)}"
if [ -z "$_bucket" ]; then
_err "no S3 bucket to use when deploying $_cdomain"
return 1
fi
if [ -z "$_region" ]; then
_err "no S3 region to use when deploying $_cdomain"
return 1
fi
_savedomainconf Aws_S3_Bucket "$_bucket"
_savedomainconf Aws_S3_Prefix "$_prefix"
_savedomainconf Aws_S3_Region "$_region"
_debug _bucket "$_bucket"
_debug _prefix "$_prefix"
_debug _region "$_region"
_prefix="$(printf '/%s/' "$_prefix" | sed "s:%cn:$_cdomain:g; s://\+:/:g")"
_debug _prefix "$_prefix"
for _file in "$_ckey" "$_ccert" "$_cca" "$_cfullchain"; do
if ! _aws s3 PUT "$_bucket" "$_prefix${_file##*/}" "$_region" <"$_file" >/dev/null; then
_err "unable to deploy $_file to s3://$_bucket$_prefix in $_region"
_ret=2
fi
done
return $_ret
}