S3cmd

S3cmd — это интерфейс командной строки (Linux, Mac) для работы с сервисами, поддерживающими HTTP API Amazon S3. Общий порядок вызова команд смотрите в официальной документации S3cmd.

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

  1. Создайте сервисный аккаунт.
  2. Назначьте роль сервисному аккаунту.
  3. Создайте статический ключ доступа.

Установка

Чтобы узнать как скачать и установить S3cmd, ознакомьтесь с разделом Download на официальном сайте проекта.

Настройка

Для настройки S3cmd используйте команду s3cmd --configure. Команда запросит значения для следующих параметров:

  1. Access Key — введите идентификатор ключа, который вы получили при генерации статического ключа.

  2. Secret Key — введите секретный ключ, который вы получили при генерации статического ключа.

  3. Default Region — введите ru-central1.

    Примечание

    Для работы с Object Storage всегда указывайте регион ru-central1. Другие значения региона могут привести к ошибке авторизации.

  4. S3 Endpoint - введите storage.yandexcloud.net.

  5. DNS-style bucket+hostname:port template for accessing a bucket — введите %(bucket)s.storage.yandexcloud.net.

  6. Значения остальных параметров оставьте без изменений.

Программа попытается установить соединение с Object Storage и получить список бакетов. В случае успеха, программа выведет Success. Your access key and secret key worked fine :-).

Команда s3cmd --configure сохранит настройки в файле ~/.s3cfg в формате:

[default]
access_key = id
secret_key = secretKey
bucket_location = ru-central1
host_base = storage.yandexcloud.net
host_bucket = %(bucket)s.storage.yandexcloud.net

При необходимости эти настройки можно изменить напрямую в файле. Также можно указать настройки при запуске программы с помощью соответствующих параметров.

Для корректной работы команд, управляющих хостингом статических сайтов, в конфигурационный файл необходимо вручную добавить параметр

website_endpoint = http://%(bucket)s.website.yandexcloud.net

Особенности

Помните, что S3cmd работает с Object Storage как с иерархической файловой системой и ключи объектов имеют вид пути к файлу.

Примеры операций

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

s3cmd ls

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

s3cmd mb s3://bucket

Примечание

При создании бакета помните об ограничениях на имя.

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

s3cmd put local_file s3://bucket/object

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

s3cmd ls s3://bucket

Получить объект

s3cmd get s3://bucket/object local_file

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

s3cmd del s3://bucket/object