# $2 = remote bucket.
# $3 = remote name
# $4 = local name.
+ # $5 = bandwidth limit.
local bucket remote date sig md5 arg inout headers
# header handling is kinda fugly, but it works.
bucket="${2:+/${2}}/" # slashify the bucket
remote="$(urlenc "${3}")" # if you don't, strange things may happen.
stdopts="--connect-timeout 10 --fail --silent"
[[ $CURL_S3_DEBUG == true ]] && stdopts="${stdopts} --show-error --fail"
+ test -n "${5}" && stdopts="${stdopts} --limit-rate ${5}"
case "${1}" in
GET) arg="-o" inout="${4:--}" # stdout if no $4
;;
# $1 = remote bucket to put it into
# $2 = remote name to put
# $3 = file to put. This must be present if $2 is.
- s3_curl PUT "${1}" "${2}" "${3:-${2}}"
+ # $4 = bandwidth limit.
+ s3_curl PUT "${1}" "${2}" "${3:-${2}}" "${4}"
return $?
}
# $2 = remote file to get
# $3 = local file to get into. Will be overwritten if it exists.
# If this contains a path, that path must exist before calling this.
- s3_curl GET "${1}" "${2}" "${3:-${2}}"
+ # $4 = bandwidth limit.
+ s3_curl GET "${1}" "${2}" "${3:-${2}}" "${4}"
return $?
}