在開發中遇到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:不積跬步,無以至千里.不積小流,無以成江海
