Tích hợp Minio với Rails app

Min.io – Object Storage Server và cách để tích hợp MinIO vào trong ứng dụng Rails. Mời các bạn cùng đọc

1, Minio là gi?

High Performance Object Storage
for Modern Data Lakes

MinIO is a high-performance, S3 compatible object store. It is built for
large scale AI/ML, data lake and database workloads. It is software-defined
and runs on any cloud or on-premises infrastructure. MinIO is dual-licensed
under open source GNU AGPL v3 and a commercial enterprise license.

để ngắn gọn hơn thì: Minio giống như dịch vụ AWS S3, nhưng được host local.

Minio là một object storage server được implement những public API giống như AWS S3. Điều đó có nghĩa là những ứng dụng có thể config để giao tiếp với Minio thì cũng có thể giao tiếp với AWS S3. Là một server lưu trữ object nên có thể được sử dụng để lưu trữ những unstructured data như ảnh, video, log files, backups và container/VM images. Dung lượng của 1 object có thể dao động từ một vài KB tới tối đa là 5TB. File cũng được gom lại trong 1 buckets, nó là được chỉ cùng với access key khi dùng app. Đây là giao diện của minio:

This image has an empty alt attribute; its file name is image-48-1024x532.png

2, Setup đơn giản

Minio có các gói docker được cài sẵn và có thể cài trực tiếp. ở đây mình sẽ chia sẽ cách cài trực tiếp với Ubuntu

Lệnh cài minio server

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20231007150738.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb


kiểm tra minio đã được cài hay chưa

which minio   
### /usr/local/bin/minio 

Run minio. chạy lệnh sau để run minio trên máy local. có thể thay thế thư mục tùy theo ý minh

mkdir ~/minio #thư mục lưu trữ 
minio server ~/minio --console-address :9001

kết quả

3, config với rails

thêm config này vào file storage.yml

minio:
  service: S3
  access_key_id: <%= ENV['MINIO_USER'] %>
  secret_access_key: <%= ENV['MINIO_PASSWORD'] %>
  region: us-east-1
  bucket: xxxx
  endpoint: <%= ENV['MINIO_ENPOINT'] %>
  force_path_style: true

thêm config này vào enviroments

config.active_storage.service = :minio

Như vậy là có thể upload và quản lí file với minio!!!

Tiếp đến là tạo một views upload đơn giản rồi chạy rails s và xem kết quả 

😃

 Happy coding !

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Cài đặt Rails 7 với Vite + Stimulus + Tailwind
Read More

Cài đặt Rails 7 với Vite + Stimulus + Tailwind

Nếu bạn đang tìm kiếm một giải pháp phát triển web hiệu suất cao và tiện lợi, Vite sẽ là lựa chọn đáng xem xét. Còn với Rails 7, bạn sẽ phải cân nhắc xem tính năng importmap có đủ thuyết phục để bạn chuyển đổi không.
Read More

Nâng bao nhiêu pool connect database là phù hợp

Trong bài viết này chúng ta sẽ tìm hiểu về sự quan trọng của việc tối ưu hóa kết nối database và tìm cách đảm bảo rằng bạn đang sử dụng số lượng pool kết nối đúng đắn, tiết kiệm tài nguyên và đảm bảo hiệu suất hệ thống.