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

Backend xử lý với dữ liệu người dùng tải lên như thế nào?

Khi người dùng tải lên dữ liệu (file, hình ảnh, video, v.v.), backend thường xử lý dữ liệu này qua các bước sau: Nhận dữ liệu  Qua API: Backend nhận dữ liệu từ HTTP request (thường là POST hoặc PUT). Ví dụ: sử dụng multipart/form-data cho file. Xác thực dữ liệu Kiểm tra định dạng: […]

Relational Database Design Principle

1-1 1-n n-n   https://nexwebsites.com/database/database-design/  

Laravel

Laravel là gì? Laravel là một framework PHP mã nguồn mở miễn phí được phát hành lần đầu tiên vào năm 2011. Taylor Otwell đã tạo ra Laravel nhằm giúp các Developer xây dựng các ứng dụng web bằng cách sử dụng mẫu kiến ​​trúc Model-View-Controller (MVC). Mô hình Model-View-Controller (MVC) trong Laravel: 1. Model […]

PHP

PHP là gì? PHP là từ viết tắt của thuật ngữ Personal Home Page và hiện nay đang có tên Hypertext Preprocessor. Đây là một dạng mã lệnh hoặc một chuỗi ngôn ngữ kịch bản. Trong đó, ngôn ngữ PHP chủ yếu được phát triển để dành cho những ứng dụng nằm trên máy chủ. Mỗi […]

Build for global scale: AFK scale cube and basic rule to build an application for global scale

REF https://akfpartners.com/growth-blog/scale-cube

PostgreSQL : subquery, CTE

What is subquery in PostgreSQL? In PostgreSQL, a subquery is a query that is nested inside another query. The subquery is executed first, and its results are used as input to the outer query. Subqueries can be used in various contexts, such as in the SELECT, WHERE, and HAVING clauses of a query. For example, […]