S3cmd — это клиент S3 API с интерфейсом командной строки, используемый для работы с S3-совместимыми хранилищами.
Установка
Для установки S3cmd воспользуйтесь командами в зависимости от вашей ОС:
Настройка
Для настройки S3cmd для работы с нашим объектным хранилищем S3 необходимо создать в корне домашней директории файл .s3cfg со следующим содержимым:
Значения S3 Access Key и S3 Secret Access Key можно найти во вкладке «Дашборд» в панели управления бакетом.

Работа с файлами
Получение списка файлов в бакете
Чтобы получить список файлов, используйте ls:
Загрузка локального файла в бакет
Для загрузки файлов используется put. В примере ниже загружается файл text.txt:
Составная (multipart) загрузка
Клиент s3cmd поддерживает составную загрузку, которая автоматически активируется при загрузке файлов размером более 15 МБ. Этот метод разбивает файл на несколько частей (чанков) и загружает их параллельно, что ускоряет процесс передачи больших файлов и повышает устойчивость к сбоям.
При необходимости составную загрузку можно отключить с помощью опции --disable-multipart.
Для изменения размера отдельных фрагментов (чанков) используйте опцию --multipart-chunk-size-mb=SIZE, где SIZE — размер каждого фрагмента в мегабайтах. По умолчанию размер фрагмента составляет 15 МБ, минимально допустимый размер — 5 МБ, максимально допустимый — 5 ГБ.
Например, чтобы установить размер фрагмента на 10 МБ, используйте следующую команду:
Эта настройка позволяет оптимизировать загрузку больших файлов в зависимости от пропускной способности сети и требований к производительности.
Удаление файла в бакете
Для удаления файла используйте команду del. В примере ниже удаляем файл text.txt:
Управление прерванными составными (multipart) загрузками
При прерывании составной загрузки фрагменты файлов не отображаются в бакете, но продолжают занимать дисковое пространство на сервере. Чтобы просмотреть список прерванных загрузок и узнать, какие фрагменты занимают место, используйте команду:
Эта команда выводит дату и время начала загрузки, путь файла и уникальный идентификатор загрузки (ID).
Для удаления фрагментов неудачных загрузок используйте следующую команду:
Скачивание файла из бакета
Для загрузки файла из бакета на локальное устройство используйте get:
Синхронизация файлов
Для синхронизации файлов между локальной директорией (в примере это текущая директория — .) и бакетом используется sync:
Полный список команд и дополнительную информацию можно найти в документации S3cmd.