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

s3cmd с WebShield S3

s3cmd — лёгкий клиент командной строки для хранилищ S3. С WebShield работает после указания endpoint WebShield. Как получить ключи и создать бакеты — см. Объектное хранилище.

  • Хост endpoint: s3.webshield.pro
  • Access Key ID и Secret Access Key со страницы Хранилище S3 в личном кабинете.
  • Полное имя бакета с префиксом аккаунта (например, u42-backups).
Terminal window
# Debian/Ubuntu
sudo apt install s3cmd
# macOS
brew install s3cmd
# или через pip: pip install s3cmd

s3cmd нужно указать хост и для API, и для URL бакета, а также path-style адресацию (хост без %(bucket)s в начале). Создайте ~/.s3cfg:

[default]
access_key = WSS...
secret_key = <секрет>
host_base = s3.webshield.pro
host_bucket = s3.webshield.pro/%(bucket)s
use_https = True
signature_v2 = False

Строка host_bucket с /%(bucket)s после хоста включает path-style адресацию, которая требуется WebShield.

Terminal window
s3cmd ls # список бакетов
s3cmd ls s3://u42-backups/ # список объектов
s3cmd put ./dump.sql.gz s3://u42-backups/db/ # загрузить
s3cmd get s3://u42-backups/db/dump.sql.gz . # скачать
s3cmd sync ./media/ s3://u42-backups/media/ # синхронизировать каталог
s3cmd del s3://u42-backups/db/dump.sql.gz # удалить

Крупные файлы загружаются multipart-загрузкой автоматически.

  • Бакеты создаются и удаляются только в личном кабинете; s3cmd mb/s3cmd rb недоступны.
  • При отрицательном балансе хранилище переходит в режим «только чтение»: загрузка (put/sync) отклоняется, скачивание работает. Пополните баланс, чтобы вернуть запись.