Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все инструменты
      • Yandex Cloud CLI
      • AWS CLI
      • S3cmd
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Подготовка к работе
  • Установка
  • Настройка
  • Особенности
  • Примеры операций
  • Получить список бакетов
  • Создать бакет
  • Загрузить объект в холодное хранилище
  • Получить список объектов
  • Получить объект
  • Удалить объект
  • Загрузка объекта с указанием MIME-типов
  1. Инструменты
  2. Консольные клиенты
  3. S3cmd

S3cmd

Статья создана
Yandex Cloud
Улучшена
Обновлена 7 марта 2025 г.
  • Подготовка к работе
  • Установка
  • Настройка
  • Особенности
  • Примеры операций
    • Получить список бакетов
    • Создать бакет
    • Загрузить объект в холодное хранилище
    • Получить список объектов
    • Получить объект
    • Удалить объект
    • Загрузка объекта с указанием MIME-типов

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

Примечание

S3cmd не поддерживает работу с версиями объектов. Чтобы работать с версиями объектов, используйте AWS CLI.

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

  1. Создайте сервисный аккаунт.

  2. Назначьте сервисному аккаунту роли, которые нужны для вашего проекта, например storage.editor на бакет — для работы с конкретным бакетом, или на каталог — для работы со всеми бакетами в каталоге. Подробнее о ролях см. на странице Управление доступом с помощью Yandex Identity and Access Management.

    Чтобы работать с объектами в зашифрованном бакете, у пользователя или сервисного аккаунта вместе с ролью storage.configurer должны быть следующие роли на ключ шифрования:

    • kms.keys.encrypter — для чтения ключа, шифрования и загрузки объектов;
    • kms.keys.decrypter — для чтения ключа, расшифровки и скачивания объектов;
    • kms.keys.encrypterDecrypter — включает разрешения, предоставляемые ролями kms.keys.encrypter и kms.keys.decrypter.

    Подробнее см. Сервисные роли Key Management Service.

  3. Создайте статический ключ доступа.

    В результате вы получите данные статического ключа доступа. Для аутентификации в Object Storage вам понадобятся:

    • key_id — идентификатор статического ключа доступа;
    • secret — секретный ключ.

    Сохраните key_id и secret, так как повторное получение значения ключа будет невозможно.

Примечание

Сервисный аккаунт может просматривать список бакетов только в том каталоге, в котором он был создан.

Сервисный аккаунт может выполнять действия с объектами в бакетах, которые созданы в каталогах, отличных от каталога сервисного аккаунта. Для этого назначьте сервисному аккаунту роли на нужный каталог или бакет в нем.

УстановкаУстановка

Чтобы установить S3cmd, ознакомьтесь с разделом установки в репозитории S3cmd на GitHub.

НастройкаНастройка

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

  • Access Key — введите идентификатор ключа, полученный ранее;

  • Secret Key — содержимое статического ключа, полученное ранее;

  • Default Region — введите ru-central1;

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

  • S3 Endpoint — введите storage.yandexcloud.net;

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

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

Программа попытается установить соединение с 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 не поддерживает работу с версиями объектов. Чтобы работать с версиями объектов, используйте AWS CLI.

  • По умолчанию S3cmd загружает объекты в стандартное хранилище. Чтобы указать класс хранилища, при загрузке объекта используйте ключ --storage-class.
  • По умолчанию при загрузке объекта S3cmd может отправлять дополнительный заголовок X-Amz-Meta-S3cmd-Attrs с атрибутами вашего файла (права доступа, владельцы файла, временны́е метки). Значение заголовка сохраняется в метаданных объекта. Отключить отправку атрибутов можно с помощью параметра preserve_attrs = False в конфигурационном файле ~/.s3cfg или ключа --no-preserve.

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

Примечание

Для включения отладочного вывода в консоли используйте ключ --debug.

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

Примечание

Авторизация в Amazon S3 HTTP API и инструментах с его поддержкой осуществляется с помощью статических ключей, полученных для сервисного аккаунта.

Вы можете просматривать список бакетов только в том каталоге, в котором был создан используемый сервисный аккаунт.

s3cmd ls

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

s3cmd mb s3://bucket

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

Загрузить объект в холодное хранилищеЗагрузить объект в холодное хранилище

s3cmd --storage-class COLD put local_file s3://bucket/object

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

s3cmd ls s3://bucket

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

s3cmd get s3://bucket/object local_file

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

s3cmd del s3://bucket/object

Загрузка объекта с указанием MIME-типовЗагрузка объекта с указанием MIME-типов

Для указания MIME-типов при загрузке объектов используйте команду put со следующими флагами:

s3cmd put \
  --no-guess-mime-type \
  --no-mime-magic \
  --mime-type="application/javascript" \
  <путь_к_локальному_файлу> \
  s3://<имя_бакета>/

Где --mime-type — MIME-тип вашего объекта.

Была ли статья полезна?

Предыдущая
AWS CLI
Следующая
CyberDuck
Проект Яндекса
© 2025 ООО «Яндекс.Облако»