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

AWS CLI с WebShield S3

Настройка AWS CLI для работы с S3-совместимым объектным хранилищем WebShield.

Официальный AWS CLI работает с нашим хранилищем без плагинов и обёрток: достаточно передать --endpoint-url или прописать его в профиле, а дальше пользоваться привычными командами s3 и s3api. Ключи и бакеты — в разделе Объектное хранилище.

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

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

Окно терминала
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 и профиль в каждом вызове:

Окно терминала
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:

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