Руководство по MinIO Client (mc)
MinIO Client, известный также как mc
, представляет собой мощную консольную утилиту для взаимодействия с объектными хранилищами, использующими протокол S3 API. Этот инструмент предоставляет простой способ управления файлами, папками и подключениями к различным хранилищам. Благодаря mc
вы можете создавать бакеты, загружать и скачивать файлы, просматривать содержимое хранилищ и управлять ими без необходимости использовать веб-интерфейсы.
Установка MinIO Client
Установить MinIO Client можно через системный пакетный менеджер или скачав исполняемый файл.
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:
Создание подключения к хранилищу (алиас)
Подключение к объектному хранилищу в 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