MinIO là gì?

MinIO là một giải pháp lưu trữ đối tượng (object storage) mã nguồn mở, tương thích với API của Amazon S3. Nó được thiết kế để lưu trữ và quản lý dữ liệu phi cấu trúc như hình ảnh, video, tài liệu, và các tệp tin lớn khác. Dung lượng của 1 object có thể dao động từ một vài KB tới tối đa là 5TB.

Hoạt động theo mô hình client-server, MinIO cho phép các client như ứng dụng web hay mobile gửi yêu cầu đến server MinIO để thao tác với dữ liệu. MinIO cũng có khả năng phân tán, cho phép triển khai trên nhiều node, hỗ trợ tính năng chịu lỗi, cân bằng tải và mở rộng hệ thống dễ dàng. Để bảo vệ dữ liệu, MinIO sử dụng kỹ thuật Erasure Coding, chia nhỏ và lưu trữ dữ liệu trên nhiều node, giúp tái tạo dữ liệu khi gặp sự cố. Đồng thời, MinIO hỗ trợ mã hóa dữ liệu và kết nối bảo mật TLS/SSL, giúp đảm bảo an toàn trong việc truy xuất và truyền tải dữ liệu.

Kết Nối đến MinIO

MinIO hỗ trợ S3 API, vì vậy bạn có thể sử dụng các SDK của AWS S3 để kết nối với MinIO. Dưới đây là cách kết nối MinIO trong Go.

MinIO cung cấp thư viện minio-go để dễ dàng tích hợp với các ứng dụng Go.

  • Đầu tiên chúng ta phải cài đặt thư viện minio-go

go get github.com/minio/minio-go/v7

  • Kết nối đến MinIO

package main
import (
"log"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
)
func main() {
// Kết nối đến MinIO
minioClient, err:=minio.New("localhost:9000", &minio.Options{
Creds: credentials.NewStaticV4("", "", ""),
Secure: false,
})
iferr!=nil {
log.Fatalln(err)
}
log.Println("File uploaded successfully")
}

Tóm lại

MinIO là một giải pháp lý tưởng cho những ai cần một hệ thống lưu trữ đối tượng nhanh, bảo mật, và dễ mở rộng, mà vẫn tương thích với các tiêu chuẩn phổ biến như Amazon S3.

Người dùng có thể quản lý hệ thống MinIO qua giao diện web đơn giản hoặc công cụ dòng lệnh, dễ dàng thực hiện các tác vụ như tạo bucket, upload file và quản lý đối tượng. Với tính năng tương thích, hiệu suất cao, và dễ sử dụng, MinIO là lựa chọn lý tưởng cho các ứng dụng lưu trữ dữ liệu lớn, hệ thống đa phương tiện, backup và các giải pháp dữ liệu lớn khác.

About the Author

Ngọc Tri

View all author's posts

Bài viết khác

Kỹ thuật Return First, Early Returning

Return First, Early Returning? Return first / Early return: là phong cách viết hàm/khối lệnh mà trả về ngay (return) khi biết kết quả — đặc biệt là khi gặp điều kiện bất thường hoặc lỗi — thay vì bọc toàn bộ logic chính trong các khối if/else lớn. ==> Làm cho luồng chính (happy path) […]

So sánh giữa gorm vs go-pg vs bun

Trong thế giới phát triển Golang, việc tương tác với cơ sở dữ liệu là một phần không thể thiếu của hầu hết các ứng dụng. Để đơn giản hóa quy trình này, các thư viện ORM (Object-Relational Mapping) ra đời, giúp các nhà phát triển thao tác với database thông qua các đối tượng […]

clean architecture golang

  1.Clean Architecture là gì? Clean Architecture là một kiến trúc phần mềm được đề xuất bởi Robert C. Martin (Uncle Bob) nhằm mục tiêu tách biệt rõ ràng giữa các tầng trong ứng dụng, giúp mã nguồn dễ bảo trì, mở rộng, và kiểm thử. 2.Tổng quan kiến trúc Entity (Domain Model): Là tầng […]

Tìm hiểu Hexagonal Architecture

Hexagonal Architecture là gì? Hexagonal Architecture (tên gọi khác là ports and adapters architecture), là một mẫu kiến trúc được dùng trong thiết kế phần mềm. Nó hướng tới việc xây dựng ứng dụng xoay quanh business/application logic mà không ảnh hưởng hoặc phụ thuộc bởi bất kì thành phần bên ngoài, mà chỉ giao […]

Go-pg

go-pg là một thư viện ORM (Object-Relational Mapping) và trình điều khiển PostgreSQL cho ngôn ngữ lập trình Go. Nó cung cấp một cách tiện lợi để tương tác với cơ sở dữ liệu PostgreSQL bằng cách ánh xạ các cấu trúc (structs) trong Go thành các bảng trong cơ sở dữ liệu và ngược […]

Ngôn ngữ lập trình Golang

Golang là gì? Go (hay còn gọi là Golang) là một ngôn ngữ lập trình được thiết kế dựa trên tư duy lập trình hệ thống. Go được phát triển bởi Robert Griesemer, Rob Pike và Ken Thompson tại Google vào năm 2007. Điểm mạnh của Go là bộ thu gom rác và hỗ trợ […]