赞
踩
概述:
minio是开源文件存储系统,可以用来存储和检索大量的文件。它是一个轻量级的分布式存储服务。
讲解:
对minio的简单了解之后,开始我们的正题。
1.部署
首先要有一个minio.tar.gz镜像,直接在docker load -i minio.tar.gz进去就可以,docker images查看此镜像
启动命令:
- docker run
-
- -p 9000:9000
-
- -p 9090:9090
-
- --name minio
-
- -d --restart=always
-
- -e MINIO_ACCESS_KEY=minio
-
- -e MINIO_SECRET_KEY=minio@123
-
- -v /usr/local/minio/data:/data
-
- -v /usr/local/minio/config:/root/.minio minio/minio:RELEASE.2023-03-09T23-16-13Z
-
- server /home/minio --console-address ":9000" --address ":9090"
-p: 指定端口映射,格式为:主机端口:容器端口 (这里注意要映射两个,否则API会访问不到)
-e “MINIO_ROOT_USER=vinci” minio用户名;
-e MINIO_SECRET_KEY=123456 minio 密码
-d: 后台运行容器,并返回容器ID;
-v: 绑定一个卷
然后,就可以docker ps -a查看容器列表发现minio服务启动了
查看minio容器的日志docker logs -f ID号,出现这种的基本上没什么问题了,已经成功了
可以进行访问了(账号密码是你启动minio容器设置的账号密码)
强调:
如果说出现加载不出来,有可能是你没有开放端口,记得开放一下端口
创建桶名称
2.minio客户端上传文件
依赖:
在application.properties中添加minio配置
- minio.endpoint=http://ip:9090/
-
- minio.bucket-name=librarytest(创建的桶名称)
-
- minio.access-key=用户名
-
- minio.secret-key=密码
测试minio文件上传
两种方式:
1.minioClient.uploadObject()
特点:
- 提供更灵活的上传功能。
- 使用
UploadObjectArgs
构建器类,可以设置更多参数,如存储桶名称、对象名称、文件路径等。- 支持更多的配置选项,适用于更复杂的上传用例。
2.minioClient.putObject()
特点:
- 提供基本的文件上传功能。
- 适合简单的上传用例。
- 可以通过
PutObjectArgs
设置存储桶名称、对象名称、输入流等。
特别强调:
如果你依赖中包含okhttp3,一定要注意跟minio兼容性。要不然会报错
- //测试minio上传文件
- public static void main(String[] args) {
- String filetype = ".doc";
- String uuid = UUID.randomUUID() + "-00000";
- String fileName = uuid + "." + filetype;
- String endpoint = "http://ip:端口"; // MinIO 服务器的地址
- String accessKey = "minioadmin"; // MinIO 访问密钥
- String secretKey = "minioadmin"; // MinIO 秘密密钥
-
- try {
- // 创建 Minio 客户端
- MinioClient minioClient = MinioClient.builder()
- .endpoint(endpoint)
- .credentials(accessKey, secretKey)
- .build();
-
- // 指定要上传的文件和存储桶名称
- File file = new File("D://系统部署方案.doc");
- InputStream files = new FileInputStream(file);
- String bucketName = "librarytest";//改成你的桶名称
- boolean exists = minioClient.bucketExists((BucketExistsArgs)((BucketExistsArgs.Builder)BucketExistsArgs.builder().bucket(bucketName)).build());
- if(!exists)
- minioClient.makeBucket((MakeBucketArgs)((MakeBucketArgs.Builder)MakeBucketArgs.builder()
- .bucket(bucketName))
- .build());
- //第一种方式上传
- // minioClient.uploadObject(
- // UploadObjectArgs.builder()
- // .bucket(bucketName)
- // .object(fileName)
- // .filename(String.valueOf(file.toPath()))
- // .contentType(filetype)
- // .build()
- // );
- //第二种方式上传
- minioClient.putObject((PutObjectArgs)((PutObjectArgs.Builder)((PutObjectArgs.Builder)PutObjectArgs.builder()
- .bucket(bucketName))
- .object(fileName))
- .stream(files,files.available(),-1L)
- .contentType(filetype)
- .build());
- System.out.println("上传成功!");
- }catch (Exception e){
- System.out.println("minio上传文件失败:"+e.getMessage());
- }
- }
上传成功之后,查看minio文件就可以了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。