文件上傳 (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