Руководство по MinIO Client (mc)

MinIO Client, известный также как mc, представляет собой мощную консольную утилиту для взаимодействия с объектными хранилищами, использующими протокол S3 API. Этот инструмент предоставляет простой способ управления файлами, папками и подключениями к различным хранилищам. Благодаря mc вы можете создавать бакеты, загружать и скачивать файлы, просматривать содержимое хранилищ и управлять ими без необходимости использовать веб-интерфейсы.


Установка MinIO Client

Установить MinIO Client можно через системный пакетный менеджер или скачав исполняемый файл.

Скачать с GitHub

Linux:

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

macOS:

brew install minio/stable/mc

Windows:

mc.exe (dl.min.io)

Создание подключения к хранилищу (алиас)

Подключение к объектному хранилищу в MinIO Client осуществляется через систему алиасов. Каждый алиас содержит URL хранилища, а также ключ доступа и секретный ключ. Это позволяет удобно обращаться к различным проектам без необходимости указывать данные каждый раз.

mc alias set <alias_name> https://s3.buckets.ru <YOUR_ACCESS_KEY_ID> <YOUR_SECRET_ACCESS_KEY>

Проверьте список всех зарегистрированных алиасов:

mc alias list

Также вы можете вручную редактировать или удалять зарегистрированные алиасы, изменяя файл конфигурации ~/.mc/config.json. Этот файл хранит все настройки и алиасы, включая URL, ключи доступа и секретные ключи.

Работа с бакетами

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

mc ls <alias_name>
mc ls <alias_name>/<bucket-name>

Создание нового бакета:

mc mb <alias_name>/<bucket-name>
Загрузка и скачивание файлов

Загрузить файл в бакет:

mc cp ./file.txt <alias_name>/<bucket-name>/

Сразу несколько файлов:

mc cp ./<local-folder>/* <alias_name>/<bucket-name>/<folder>/

Папка целиком:

mc cp --recursive ./<local-folder>/ <alias_name>/<bucket-name>/<folder>/

Скачивание объектов обратно на диск:

mc cp <alias_name>/<bucket-name>/file.txt ./<local-folder>/
Удаление объектов и бакетов

Удаление одиночного файла:

mc rm <alias_name>/<bucket-name>/file.txt

Удаление целой директории:

mc rm --recursive <alias_name>/<bucket-name>/<folder>/

Для удаления бакета используйте команду mc rb. Если бакет не пуст, по умолчанию операция не будет выполнена, чтобы избежать потери данных. Однако, если вы хотите принудительно удалить бакет вместе со всеми его объектами, используйте флаг --force

mc rb <alias_name>/<bucket-name>

Внимание: после использования --force все объекты в бакете будут безвозвратно удалены, и бакет будет удалён.

Синхронизация директорий

Команда mc mirror позволяет синхронизировать содержимое локальной директории с бакетом в объектном хранилище и наоборот. Это удобный способ поддерживать две директории в актуальном состоянии.

Пример синхронизации локальной папки в бакет:

mc mirror <folder> <alias_name>/<bucket-name>/

Пример синхронизации бакета в локальную папку:

mc mirror <alias_name>/<bucket-name>/ <folder>

Опции команды:

  • --watch — следить за изменениями и автоматически синхронизировать.
  • --remove — удалять файлы в целевой директории, которых нет в исходной (удаление синхронизируется).
  • --overwrite — перезаписывать существующие файлы.

Пример с отслеживанием изменений:

mc mirror --watch <folder> <alias_name>/<bucket-name>/
Дополнительные возможности

MinIO Client поддерживает множество дополнительных операций. Подробное руководство доступно на официальном сайте.

Официальная документация MinIO Client

Все еще нужна помощь?
Создать заявку в поддержку