您现在的位置是:首页 >技术交流 >MinIO:基于Go实现的高性能、兼容S3协议的对象存储网站首页技术交流
MinIO:基于Go实现的高性能、兼容S3协议的对象存储
简介MinIO:基于Go实现的高性能、兼容S3协议的对象存储
High Performance Object Storage for AI
译文:MinIO是一个基于Go实现的高性能、兼容S3协议的对象存储
文档
- 项目地址:https://github.com/minio/minio
- 官网地址:https://min.io/
- 文档地址:https://docs.min.io/
- Software Development Kits (SDK)
- 下载地址:https://min.io/download#/docker
启动服务端
使用Docker启动minio服务端
docker run
-p 9000:9000
-p 9090:9090
--name minio
-e "MINIO_ROOT_USER=ROOTUSER"
-e "MINIO_ROOT_PASSWORD=CHANGEME123"
-v $(pwd)/data:/data
quay.io/minio/minio server /data
--console-address ":9090"
浏览器访问:http://localhost:9090
如果自己不想搭建服务,可以直接使用官方提供的测试服务
参数 | 值 |
---|---|
Endpoint | https://play.min.io |
Access Key | Q3AM3UQ867SPQQA43P2F |
Secret Key | zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG |
客户端
官方提供了多种语言的客户端
- .NET (minio-dotnet)
- Go (minio-go)
- Haskell (minio-hs)
- Java (minio-java)
- JavaScript (minio-js)
- Python (minio-py)
以Java客户端为例
依赖
<!-- 操作minio的java客户端-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.4.3</version>
</dependency>
Java客户端上传文件示例代码
package com.example.demo;
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
public class FileUploader {
public static void makeSureBucketExists(MinioClient minioClient, String bucketName) throws Exception {
// 确保 bucketName 存在,否则会报错
boolean found = minioClient.bucketExists(
BucketExistsArgs.builder()
.bucket(bucketName)
.build());
if (!found) {
minioClient.makeBucket(
MakeBucketArgs.builder()
.bucket(bucketName)
.build());
} else {
System.out.println("Bucket already exists.");
}
}
public static void main(String[] args)
throws Exception {
// 客户端
MinioClient minioClient = MinioClient.builder()
.endpoint("http://127.0.0.1:9000")
.credentials("ROOTUSER", "CHANGEME123")
.build();
// bucket
String bucketName = "bucket";
// 确保bucket存在
makeSureBucketExists(minioClient, bucketName);
// 参数
UploadObjectArgs uploadObjectArgs = UploadObjectArgs.builder()
.bucket(bucketName)
.object("demo.txt")
.filename("demo.txt")
.build();
// 上传文件
minioClient.uploadObject(uploadObjectArgs);
System.out.println("upload success");
}
}
可以在浏览器看到刚上传的文件
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。