第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料( 三 )

第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
  • 连接成功后,我们可以看见之前我们创建的存储桶和上传的文件

第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
  • S3 Browser这个工具功能还是很强大的

第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
  • 如果你想修改存储桶的访问权限的话直接通过Permissions标签修改即可 。

第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
10. 利用Java客户端调用MinIO参考文档:https://docs.min.io/docs/java-client-api-reference.html
10.1 引入依赖在service-product模块中添加依赖
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.2.0</version></dependency>10.2 添加配置文件minio:endpointUrl: http://IP:9000accessKey: adminsecreKey: admin123456bucketName: file10.3 编写java程序@RestController@RequestMapping("admin/product")public class FileUploadController {//获取文件上传对应的地址@Value("${minio.endpointUrl}")public String endpointUrl;@Value("${minio.accessKey}")public String accessKey;@Value("${minio.secreKey}")public String secreKey;@Value("${minio.bucketName}")public String bucketName;//文件上传控制器@PostMapping("fileUpload")public Result fileUpload(MultipartFile file) throws Exception{//准备获取到上传的文件路径!String url = "";// 使用MinIO服务的URL,端口,Access key和Secret key创建一个MinioClient对象// MinioClient minioClient = new MinioClient("https://play.min.io", "Q3AM3UQ867SPQQA43P2F", "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG");MinioClient minioClient =MinioClient.builder().endpoint(endpointUrl).credentials(accessKey, secreKey).build();// 检查存储桶是否已经存在boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if(isExist) {System.out.println("Bucket already exists.");} else {// 创建一个名为asiatrip的存储桶,用于存储照片的zip文件 。minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}//定义一个文件的名称 : 文件上传的时候 , 名称不能重复!String fileName = System.currentTimeMillis()+ UUID.randomUUID().toString();// 使用putObject上传一个文件到存储桶中 。//minioClient.putObject("asiatrip","asiaphotos.zip", "/home/user/Photos/asiaphotos.zip");minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(fileName).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build());//System.out.println("/home/user/Photos/asiaphotos.zip is successfully uploaded as asiaphotos.zip to `asiatrip` bucket.");//文件上传之后的路径: http://192.168.86.101:9000/file/xxxxxxurl = endpointUrl+"/"+bucketName+"/"+fileName;System.out.println("url:\t"+url);//将文件上传之后的路径返回给页面!return Result.ok(url);}}

推荐阅读