当前位置:   article > 正文

关于minio部署(docker)以及minio上传文件_minio文件地址

minio文件地址

概述:

        minio是开源文件存储系统,可以用来存储和检索大量的文件。它是一个轻量级的分布式存储服务。

讲解:

       对minio的简单了解之后,开始我们的正题。

1.部署

     首先要有一个minio.tar.gz镜像,直接在docker load -i  minio.tar.gz进去就可以,docker images查看此镜像

启动命令:

  1. docker run  
  2.     -p 9000:9000
  3.     -p 9090:9090
  4.     --name minio  
  5.     -d --restart=always  
  6.     -e MINIO_ACCESS_KEY=minio  
  7.     -e MINIO_SECRET_KEY=minio@123  
  8.     -v /usr/local/minio/data:/data  
  9.     -v /usr/local/minio/config:/root/.minio   minio/minio:RELEASE.2023-03-09T23-16-13Z
  10.     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配置

  1. minio.endpoint=http://ip:9090/
  2. minio.bucket-name=librarytest(创建的桶名称)
  3. minio.access-key=用户名
  4. minio.secret-key=密码

测试minio文件上传

两种方式:

1.minioClient.uploadObject()

特点:

  • 提供更灵活的上传功能。
  • 使用 UploadObjectArgs 构建器类,可以设置更多参数,如存储桶名称、对象名称、文件路径等。
  • 支持更多的配置选项,适用于更复杂的上传用例。

2.minioClient.putObject()

特点:

  • 提供基本的文件上传功能。
  • 适合简单的上传用例。
  • 可以通过 PutObjectArgs 设置存储桶名称、对象名称、输入流等。

特别强调:

如果你依赖中包含okhttp3,一定要注意跟minio兼容性。要不然会报错

  1. //测试minio上传文件
  2. public static void main(String[] args) {
  3. String filetype = ".doc";
  4. String uuid = UUID.randomUUID() + "-00000";
  5. String fileName = uuid + "." + filetype;
  6. String endpoint = "http://ip:端口"; // MinIO 服务器的地址
  7. String accessKey = "minioadmin"; // MinIO 访问密钥
  8. String secretKey = "minioadmin"; // MinIO 秘密密钥
  9. try {
  10. // 创建 Minio 客户端
  11. MinioClient minioClient = MinioClient.builder()
  12. .endpoint(endpoint)
  13. .credentials(accessKey, secretKey)
  14. .build();
  15. // 指定要上传的文件和存储桶名称
  16. File file = new File("D://系统部署方案.doc");
  17. InputStream files = new FileInputStream(file);
  18. String bucketName = "librarytest";//改成你的桶名称
  19. boolean exists = minioClient.bucketExists((BucketExistsArgs)((BucketExistsArgs.Builder)BucketExistsArgs.builder().bucket(bucketName)).build());
  20. if(!exists)
  21. minioClient.makeBucket((MakeBucketArgs)((MakeBucketArgs.Builder)MakeBucketArgs.builder()
  22. .bucket(bucketName))
  23. .build());
  24. //第一种方式上传
  25. // minioClient.uploadObject(
  26. // UploadObjectArgs.builder()
  27. // .bucket(bucketName)
  28. // .object(fileName)
  29. // .filename(String.valueOf(file.toPath()))
  30. // .contentType(filetype)
  31. // .build()
  32. // );
  33. //第二种方式上传
  34. minioClient.putObject((PutObjectArgs)((PutObjectArgs.Builder)((PutObjectArgs.Builder)PutObjectArgs.builder()
  35. .bucket(bucketName))
  36. .object(fileName))
  37. .stream(files,files.available(),-1L)
  38. .contentType(filetype)
  39. .build());
  40. System.out.println("上传成功!");
  41. }catch (Exception e){
  42. System.out.println("minio上传文件失败:"+e.getMessage());
  43. }
  44. }

上传成功之后,查看minio文件就可以了。

恭喜您,又学会了一项技能。加油!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/675154
推荐阅读
相关标签
  

闽ICP备14008679号