Skip to content

s3cmd

s3cmd — консольная утилита для Linux и MacOS, которую можно использовать для работы с Object Storage.

Подготовка к работе

  1. Cоздайте сервисный аккаунт.
  2. Назначьте сервисному аккаунту роль storage.bucket.editor или выше.
  3. Создайте HMAC-ключ.
  4. Скопируйте и сохраните обе части HMAC-ключа: Access key и Secret key.

Настройка

Выполните команду:

bash
s3cmd --configure

Введите значения параметров:

  • Access Key — значение Access key из HMAC-ключа (пример — _Ukpnpw3RiCx3iuPhn-t);
  • Secret Key — значение Secret key из HMAC-ключа (пример — 3LIK2LbwYqER7oGr3cX4WSC31YN83yZnDgcXyjewX);
  • Default Region — регион по умолчанию (укажите ru-central1);
  • S3 Endpointstorage.mwsapis.ru;
  • DNS-style bucket+hostname:port template for accessing a bucket — формат URL для доступа к бакетам (укажите %(bucket)s.storage.mwsapis.ru).

Как только вы введете все параметры, s3cmd попытается установить соединение с хранилищем. Если соединение будет успешно установлено, вы увидите следующее сообщение:

Success. Your access key and secret key worked fine :-).

Конфигурационные файлы

Параметры, указанные при настройке, сохраняются в конфигурационном файле ~/.s3cfg:

bash
[default]
access_key = <Access key из HMAC-ключа>
secret_key = <Secret key из HMAC-ключа>
bucket_location = ru-central1
host_base = storage.mwsapis.ru
host_bucket = %(bucket)s.storage.mwsapis.ru

Примеры команд

Создать бакет

bash
s3cmd mb s3://<имя бакета>

Загрузить объект в бакет

bash
s3cmd  put local_file s3://<имя бакета>/<ключ объекта>

Скачать объект из бакета

bash
s3cmd get s3://bucket/<путь к локальной директории, в которую нужно скачать объект>

Получить список объектов в бакете

bash
s3cmd ls s3://<имя бакета>

Удалить объект

bash
s3cmd del s3://<имя бакета>/<ключ объекта>