umorpha-boxes/bin/vultr-s3cmd

37 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (C) 2023 Umorpha Systems
# SPDX-License-Identifier: AGPL-3.0-or-later
set -euE -o pipefail
# Clusters:
#
# | ID | hostname | location |
# |----+-----------------------+----------------|
# | 2 | ewr1.vultrobjects.com | New Jersey |
# | 4 | sgp1.vultrobjects.com | Singapore |
# | 5 | sjc1.vultrobjects.com | Silicon Valley |
# | 6 | ams1.vultrobjects.com | Amsterdam |
# | 7 | blr1.vultrobjects.com | Bangalore |
# | 8 | del1.vultrobjects.com | Delhi NCR |
main() {
store_id=$(bin/vultr-api object-storage | jq -r '.object_storages[]|select(.label=="Umorpha disk images").id')
if [[ -z "$store_id" ]]; then
store_id=$(bin/vultr-api object-storage -XPOST --data '{"label":"Umorpha disk images","cluster_id":5}' | jq -r .object_storage.id)
fi
info_resp=$(bin/vultr-api object-storage/$store_id)
s3_hostname=$(jq -r .object_storage.s3_hostname <<<"$info_resp")
export AWS_ACCESS_KEY_ID="$(jq -r .object_storage.s3_access_key <<<"$info_resp")"
export AWS_SECRET_ACCESS_KEY="$(jq -r .object_storage.s3_secret_key <<<"$info_resp")"
if [[ "$1" == hostname ]]; then
printf '%s\n' "$s3_hostname"
else
s3cmd --host="$s3_hostname" --host-bucket="%(bucket)s.${s3_hostname}" "$@"
fi
}
main "$@"