Звезда Github 28K+! Этот сервис хранения визуальных объектов действительно ароматный!

Java задняя часть GitHub
Звезда Github 28K+! Этот сервис хранения визуальных объектов действительно ароматный!

Адрес фактического центра электронной коммерции SpringBoot (50k+star):GitHub.com/macro-positive/…

Резюме

Когда мы обычно делаем проекты, хранение файлов является очень распространенным требованием. В настоящее время мы будем использовать службы хранения объектов.Обычно мы можем выбирать сторонние службы, такие как OSS и AWS S3. Сегодня я покажу вам, как создать собственный сервис хранения объектов с визуальным управлением, который очень прост в использовании!

Введение в MinIO

MinIO — это высокопроизводительный сервис хранения объектов на основе языка Go, получивший 28 000 звезд на Github. Он использует протокол с открытым исходным кодом Apache License v2.0, который очень подходит для хранения неструктурированных данных большой емкости, таких как изображения, видео, файлы журналов, резервные данные и образы контейнеров/виртуальных машин.

Установить

Установить сервис MinIO с помощью Docker очень просто, всего несколько команд!

  • Сначала загрузите Docker-образ MinIO;
docker pull minio/minio
  • После завершения загрузки используйте следующую команду для запуска службы MinIO, обратите внимание на использование--console-addressУкажите рабочий порт консоли MinIO (иначе она будет работать на случайном порту):
docker run -p 9090:9000 -p 9001:9001 --name minio \
-v /mydata/minio/data:/data \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
-d minio/minio server /data --console-address ":9001"
  • После успешной операции вы можете получить доступ к интерфейсу управления консоли MinIO и ввести пароль учетной записи.minioadmin:minioadminВы можете войти и посетить адрес:http://192.168.7.142:9090

Использование консоли MinIO

Консоль MinIO — это инструмент визуального управления, который поставляется вместе с MinIO. По сравнению с инструментами визуализации предыдущего поколения, его функции намного мощнее. Давайте испытаем этот инструмент.

  • Давайте сначала посмотрим на браузер MinIO следующего поколения, который в основном поддерживает только функции управления корзинами и файлами;

  • Давайте взглянем на консоль MinIO, которая не только поддерживает управление корзинами и файлами, но также добавляет функции управления, такие как пользователи, разрешения и журналы, которые намного мощнее;

  • Перед сохранением файлов нам сначала нужно создать корзину;

  • После успешного создания загрузите еще один файл;

  • После успешной загрузки, если вы хотите получить доступ к файлу извне, вам нужно установить политику доступа на общедоступную.Политики здесь только общедоступные и частные, что не очень гибко;

  • После этого вы можете получить доступ к картинкам, изменив адрес на адрес доступа к внешней сети.По умолчанию вы можете только скачивать их и не можете просматривать их напрямую (мы решим эту проблему позже).Адрес доступа к внешней сети:http://192.168.7.142:9090/blog/avatar.png

Использование клиента

На самом деле, для объектного хранилища функций MinIO Console недостаточно, поэтому официал также предоставляет клиент на базе командной строки MinIO Client (далее mc), о способе его использования поговорим.

Общие команды

Давайте сначала познакомимся с командами mc, которые во многом схожи с командами в Linux.

Заказ эффект
ls Список файлов и папок
mb Создайте корзину или папку
rb удалить корзину или папку
cat Отображать содержимое файла и объекта
pipe Перенаправляет STDIN на объект или файл или STDOUT
share Создайте URL-адрес для обмена
cp Копировать файлы и объекты
mirror Зеркальные ведра и папки
find Поиск файлов по параметрам
diff Сравните различия между двумя папками или сегментами
rm Удалить файлы и объекты
events Управление уведомлениями объектов
watch Прослушивание событий в файлах и объектах
policy Управление политиками доступа
session Управление сохраненными сеансами для команды cp
config Управление профилями mc
update Проверить наличие обновлений программного обеспечения
version информация о выходной версии

Установка и настройка

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

  • Загрузите Docker-образ клиента MinIO;
docker pull minio/mc
  • запустить mc в контейнере Docker;
docker run -it --entrypoint=/bin/sh minio/mc
  • После завершения операции нам необходимо настроить и настроить собственный сервис MinIO для клиента.Формат конфигурации следующий:
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>
  • Это можно настроить для нашего сервиса MinIO.
mc config host add minio http://192.168.7.142:9090 minioadmin minioadmin

Общие операции

  • Просмотр корзины и файлов, существующих в корзине;
# 查看存储桶
mc ls minio
# 查看存储桶中存在的文件
mc ls minio/blog

  • Создатьtestведро;
mc mb minio/test

  • общийavatar.pngПуть загрузки файла;
mc share download minio/blog/avatar.png

  • найтиblogфайлы png в ведре;
mc find minio/blog --name "*.png"

  • настраиватьtestДоступ к корзине есть只读.
# 目前可以设置这四种权限:none, download, upload, public
mc policy set download minio/test/
# 查看存储桶当前权限
mc policy list minio/test/

Совместимость с AWS S3

Когда мы используем объектное хранилище для взаимодействия со сторонними сервисами, эти сервисы часто поддерживают AWS S3. Например, для функции воспроизведения в реальном времени требуется хранилище объектов для хранения воспроизводимого видео.Поскольку MinIO совместим с большинством API-интерфейсов AWS S3, мы можем использовать его напрямую как AWS S3.

  • Мы можем загрузить клиент AWS S3, чтобы попробовать. Может ли MinIO поддерживать S3 API? ВотS3 Browser,ссылка на скачивание:s3browser.com/

  • установленыS3 BrowserПосле этого добавьте учетную запись, введите соответствующую информацию для входа и обратите внимание на выбор типа учетной записи какS3 Compatible Storage;

  • После успешного подключения мы можем увидеть созданную нами ранее корзину и загруженные файлы;

  • S3 BrowserЭтот инструмент по-прежнему очень мощный, а консоль MinIO слишком слаба по сравнению с ним;

  • Существует проблема, упомянутая выше, файлы изображений не могут быть просмотрены напрямую, на самом деле при доступе к файлам изображений, Content-Type, возвращаемый MinIO,application/octet-streamвызванный;

  • Далее мы можем пройтиS3 Browserизменить заголовок ответа, возвращаемый по умолчанию;

  • потом.pngЗаголовок ответа файла в начале изменен наimage/pngПросто хорошо;

  • Следует отметить, что ранее загруженные файлы необходимо повторно загрузить, чтобы они вступили в силу.В настоящее время вы можете просмотреть изображения непосредственно, перейдя по ссылке;

  • Если вы хотите изменить права доступа к корзине, напрямую передайтеPermissionsМетку можно изменить, она более гибкая, чем консоль MinIO.

Суммировать

Если вы хотите создать собственную службу хранения объектов, MinIO действительно лучший выбор. Он совместим с AWS S3 API, использование MinIO эквивалентно использованию AWS S3 и совместимо с некоторыми основными сторонними сервисами. Однако его встроенный клиент MinIO Console действительно немного безвкусен, к счастью, он поддерживает AWS S3, и вы можете использовать некоторые мощные клиентские инструменты S3.

использованная литература

Официальная документация:docs.min.io/

Эта статьяGitHubGitHub.com/macro-positive/…Он был записан, приветствую всех на Star!