审核模块相关接口修改
This commit is contained in:
@@ -97,26 +97,53 @@ public class MinioUtil {
|
||||
|
||||
return endpoint + "/" + bucketName + "/" + objectName;
|
||||
}
|
||||
public String uploadBase64(String imgStr,String bucketName,String folder){
|
||||
public String uploadBase64(String imgStr, String bucketName, String folder) {
|
||||
try {
|
||||
String objectName = folder + UUID.randomUUID().toString().replace("-", "") + ".png";
|
||||
String filePath = RuoYiConfig.getProfile()+"/"+bucketName+"/"+objectName;
|
||||
imgStr = imgStr.replace("data:image/png;base64,", "");
|
||||
// 解码Base64字符串
|
||||
imgStr = imgStr.replace("data:image/png;base64,", "").replace("data:image/jpeg;base64,", "");
|
||||
byte[] imageBytes = Base64.getDecoder().decode(imgStr);
|
||||
|
||||
// 将字节转换为BufferedImage
|
||||
BufferedImage img = javax.imageio.ImageIO.read(new java.io.ByteArrayInputStream(imageBytes));
|
||||
// 确保 bucket 存在
|
||||
boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
|
||||
if (!exists) {
|
||||
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
|
||||
}
|
||||
|
||||
// 设置公共访问策略(幂等)
|
||||
String policyJson = "{\n" +
|
||||
" \"Version\":\"2012-10-17\",\n" +
|
||||
" \"Statement\":[\n" +
|
||||
" {\n" +
|
||||
" \"Effect\":\"Allow\",\n" +
|
||||
" \"Principal\":{\"AWS\":\"*\"},\n" +
|
||||
" \"Action\":[\"s3:GetObject\"],\n" +
|
||||
" \"Resource\":[\"arn:aws:s3:::" + bucketName + "/*\"]\n" +
|
||||
" }\n" +
|
||||
" ]\n" +
|
||||
"}";
|
||||
|
||||
minioClient.setBucketPolicy(
|
||||
SetBucketPolicyArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.config(policyJson)
|
||||
.build()
|
||||
);
|
||||
|
||||
// 构造 InputStream 上传
|
||||
try (InputStream inputStream = new java.io.ByteArrayInputStream(imageBytes)) {
|
||||
minioClient.putObject(PutObjectArgs.builder()
|
||||
.bucket(bucketName)
|
||||
.object(objectName)
|
||||
.stream(inputStream, imageBytes.length, -1)
|
||||
.contentType("image/png")
|
||||
.build());
|
||||
}
|
||||
|
||||
// 写入图片到文件系统
|
||||
File outputFile = new File(filePath);
|
||||
ImageIO.write(img, "PNG", outputFile);
|
||||
return endpoint + "/" + bucketName + "/" + objectName;
|
||||
// System.out.println("图片已保存到: " + outputFile.getAbsolutePath());
|
||||
} catch (Exception e) {
|
||||
System.err.println("转换或保存图片时发生错误: " + e.getMessage());
|
||||
System.err.println("Base64上传MinIO失败:" + e.getMessage());
|
||||
return "";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user