Перейти к содержимому

AWS CLI с WebShield S3

Официальный AWS CLI работает с объектным хранилищем WebShield — достаточно указать endpoint WebShield. Как получить ключи и создать бакеты — см. Объектное хранилище.

  • Endpoint: https://s3.webshield.pro
  • Access Key ID и Secret Access Key со страницы Хранилище S3 в личном кабинете.
  • Полное имя бакета с префиксом аккаунта (например, u42-backups).
Terminal window
# Debian/Ubuntu
sudo apt install awscli
# macOS
brew install awscli
# или официальный дистрибутив: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

Сохраните ключи в именованном профиле, чтобы не повторять их в каждой команде:

Terminal window
aws configure set aws_access_key_id WSS... --profile webshield
aws configure set aws_secret_access_key <секрет> --profile webshield
aws configure set region us-east-1 --profile webshield

Значение региона WebShield не использует, но некоторые инструменты требуют, чтобы оно было задано.

Передавайте --endpoint-url и профиль в каждом вызове:

Terminal window
alias ws='aws --profile webshield --endpoint-url https://s3.webshield.pro'
ws s3 ls # список бакетов
ws s3 ls s3://u42-backups/ # объекты в бакете
ws s3 cp ./dump.sql.gz s3://u42-backups/db/ # загрузить файл
ws s3 cp s3://u42-backups/db/dump.sql.gz . # скачать файл
ws s3 sync ./media s3://u42-backups/media # синхронизировать каталог
ws s3 rm s3://u42-backups/db/dump.sql.gz # удалить объект

Multipart-загрузку крупных файлов aws s3 cp/sync выполняют автоматически.

Команды s3api тоже работают — для операций, которых нет в s3:

Terminal window
ws s3api head-object --bucket u42-backups --key db/dump.sql.gz
ws s3api list-objects-v2 --bucket u42-backups --prefix db/
  • WebShield использует path-style адресацию (https://s3.webshield.pro/<bucket>/<key>); AWS CLI выбирает её автоматически при заданном нестандартном endpoint.
  • Бакеты создаются и удаляются только в личном кабинете — s3 mb/s3 rb недоступны.
  • При отрицательном балансе хранилище переходит в режим «только чтение»: загрузка (cp/sync) отклоняется, скачивание работает. Пополните баланс, чтобы вернуть запись.