文件上传 (Minio服务器)


在开发中遇到minio上传文件的问题,故记录下。minio的中文文档:https://docs.min.io/cn/

添加minio的maven依赖:

   <dependency>
      <groupId>io.minio</groupId>
      <artifactId>minio</artifactId>
      <version>3.0.10</version>
    </dependency>

Controller层:

 public static MinioClient minioClient;
    public static String bucketName;

    private static final String endpoint = "minio服务器所在地址";
    private static final String accessKey = "访问的key";
    private static final String secretKey = "访问的秘钥";
    private static final String url = "url前缀";//前缀

    static {
        try {
            minioClient = new MinioClient("minio服务器所在地址",
                    "访问的key",
                    "访问的秘钥");
            bucketName = "项目名称";
        } catch (InvalidEndpointException e) {
            e.printStackTrace();
        } catch (InvalidPortException e) {
            e.printStackTrace();
        }
    }

    @ApiOperation("上传文件")
    @PostMapping(value = "/uploadFile")
    public Object uploadFile(MultipartFile[] file) {
        List<String> list = new ArrayList();
        //JSONObject resultJson = new JSONObject();
        //String url = null;
        for(MultipartFile multipartFile : file){
            if (multipartFile.isEmpty()) {
                return "";
            }
            try {
                String[] originalFilename = multipartFile.getOriginalFilename().split("\\.");

                InputStream inputStream = multipartFile.getInputStream();
                String fileName = originalFilename[0] + "_"+System.currentTimeMillis() + "." + originalFilename[1];
                minioClient.putObject(bucketName, fileName, inputStream, new PutObjectOptions(multipartFile.getSize(),
                        PutObjectOptions.MIN_MULTIPART_SIZE));
                String address = minioClient.getObjectUrl(bucketName, fileName);
                //获得第一个点的位置
                int index=address.indexOf("/");
                System.out.println(index);
                //根据第一个点的位置 获得第二个点的位置
                index=address.indexOf("/", index+2);
                //根据第二个点的位置,截取 字符串。得到结果 result
                String result=address.substring(index);
                list.add(url+result);
                //resultJson.put("url", minioClient.getObjectUrl(bucketName, fileName));
            } catch (Exception e) {
                e.printStackTrace();
                return "上传失败";
            }
        }
       return list;
    }

   final:不积跬步,无以至千里.不积小流,无以成江海


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM