Бесплатная миграция IT-инфраструктуры в облако
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

S3cmd

S3cmd — это клиент S3 API с интерфейсом командной строки, используемый для работы с S3-совместимыми хранилищами.

Установка

Для установки S3cmd в операционной системе Ubuntu используйте команду:

sudo apt install s3cmd -y

Настройка

Для настройки S3cmd для работы с нашим объектным хранилищем S3 необходимо создать в корне домашней директории файл .s3cfg со следующим содержимым:

[default]
access_key = <Access Key>
secret_key = <Secret Access Key>
bucket_location = ru-1
host_base = s3.timeweb.com
host_bucket = s3.timeweb.com
use_https = True

В качестве хоста для host_base и host_bucket можно использовать s3.timeweb.com или s3.timeweb.cloud в зависимости от кластера S3. Проверить, какой эндпоинт используется для вашего бакета, можно в панели управления в разделе «Настройки», в блоке «Параметры S3» или на вкладке «Дашборд». Там же можно найти значения S3 Access Key и S3 Secret Access Key.

Работа с файлами

Получение списка файлов в бакете

Чтобы получить список файлов, используйте ls:

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

Загрузка локального файла в бакет

Для загрузки файлов используется put. В примере ниже загружается файл text.txt:

s3cmd put test.txt s3://<имя бакета>

Составная (multipart) загрузка

Клиент s3cmd поддерживает составную загрузку, которая автоматически активируется при загрузке файлов размером более 15 Мб. Этот метод разбивает файл на несколько частей (чанков) и загружает их параллельно, что ускоряет процесс передачи больших файлов и повышает устойчивость к сбоям.

При необходимости составную загрузку можно отключить с помощью опции --disable-multipart.

Для изменения размера отдельных фрагментов (чанков) используйте опцию --multipart-chunk-size-mb=SIZE, где SIZE — размер каждого фрагмента в мегабайтах. По умолчанию размер фрагмента составляет 15 Мб, минимально допустимый размер — 5 Мб, максимально допустимый — 5 Гб.

Например, чтобы установить размер фрагмента на 10 Мб, используйте следующую команду:

s3cmd put <имя_файла> --multipart-chunk-size-mb=10 s3://<имя_бакета>

Эта настройка позволяет оптимизировать загрузку больших файлов в зависимости от пропускной способности сети и требований к производительности.

Удаление файла в бакете

Для удаления файла используйте команду del. В примере ниже удаляем файл text.txt:

s3cmd del s3://<имя бакета>/test.txt

Управление прерванными составными (multipart) загрузками

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

s3cmd multipart s3://<имя_бакета>

Эта команда выводит дату и время начала загрузки, путь файла и уникальный идентификатор загрузки (ID).

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

s3cmd abortmp s3://<имя_бакета>/<имя_файла> <ID_загрузки>

Скачивание файла из бакета

Для загрузки файла из бакета на локальное устройство используйте get:

s3cmd get s3://<имя бакета>/test.txt

Синхронизация файлов

Для синхронизации файлов между локальной директорией (в примере это текущая директория — .) и бакетом используется sync:

s3cmd sync . s3://<имя бакета>

Полный список команд и дополнительную информацию можно найти в документации S3cmd.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев