diff --git a/HomeWork-java/pom.xml b/HomeWork-java/pom.xml index 686be2ed8f1927dd04f4b15d710b1643c69f8a74..b577699a7ec39912971b4939b6138ad230286864 100644 --- a/HomeWork-java/pom.xml +++ b/HomeWork-java/pom.xml @@ -263,6 +263,14 @@ + + + io.minio + minio + 8.5.2 + + + src @@ -307,6 +315,10 @@ ${project.build.resourceDirectory}/css css + + + + diff --git a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java index b26eb642e55b8527b360efdae8e1c72b16903ef1..01690e3911e10a61c96a6c38c71b7200cd61c49b 100644 --- a/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java +++ b/HomeWork-java/src/com/wetoband/template/action/ToolTemplateAction.java @@ -11,10 +11,7 @@ import com.wetoband.template.entity.Question; import com.wetoband.template.entity.User; import com.wetoband.template.entity.WrongQuestion; -import com.wetoband.template.service.HomeWorkService; -import com.wetoband.template.service.QuestionService; -import com.wetoband.template.service.UserService; -import com.wetoband.template.service.WrongQuestionService; +import com.wetoband.template.service.*; import com.wetoband.template.service.impl.HomeWorkServiceImpl; import com.wetoband.template.service.impl.QuestionServiceImpl; import com.wetoband.template.service.impl.UserServiceImpl; @@ -24,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.sql.Connection; @@ -47,6 +45,8 @@ public class ToolTemplateAction extends ActionToolBase { QuestionService questionService=IOC.getBean(QuestionServiceImpl.class); UserService userService=IOC.getBean(UserServiceImpl.class); + FileUploadService fileUploadService= IOC.getBean(FileUploadService.class); + @Action public R get(HttpServletRequest request ) throws Exception { @@ -118,7 +118,7 @@ public class ToolTemplateAction extends ActionToolBase { Date submitTimeDate = sdf.parse(submitTimeStr); String text = request.getParameter("text"); homeWorkService.submitHomework(studentId,homeworkId,submitTimeDate,text); - return R.ok().put("data",null); + return R.ok().message("请求成功"); } @@ -138,6 +138,17 @@ public class ToolTemplateAction extends ActionToolBase { return R.ok().message("请求成功"); } + + //文件上传miniIo + @Action + public R fileUploadService(@RequestParam(value = "file") MultipartFile multipartFile) {//前端要传一个名字叫 file 的参数 + String fileUrl = fileUploadService.fileUpload(multipartFile) ; + return R.ok().put("data",fileUrl);//返回一个fileurl给前端 + } + + + + public static String runTool(String toolId, String action, Map map, String bandId) { HashMap params = new HashMap<>(); params.put("toolID", toolId); @@ -153,4 +164,12 @@ public class ToolTemplateAction extends ActionToolBase { .execute().sync(); return response.body(); } + + + + + + + + } diff --git a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java index 09cf44c63831a970c0aa3dfe1ce320cf6c9484ff..69a4edda3b355828b79dec947be69e627f4cb9cf 100644 --- a/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java +++ b/HomeWork-java/src/com/wetoband/template/aspects/LogOperateAspect.java @@ -39,7 +39,7 @@ public class LogOperateAspect { */ @Pointcut("@annotation(com.wetoband.template.annotation.LogOperate)") // @Pointcut("execution (* com.blp.service..*.*(..))") - public void logOperateAnnotation() {} + public void logOperateAnnotation(){ } diff --git a/HomeWork-java/src/com/wetoband/template/service/FileUploadService.java b/HomeWork-java/src/com/wetoband/template/service/FileUploadService.java new file mode 100644 index 0000000000000000000000000000000000000000..81f791fe592ae8de6e2af8db878e053b0428c6d6 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/service/FileUploadService.java @@ -0,0 +1,7 @@ +package com.wetoband.template.service; + +import org.springframework.web.multipart.MultipartFile; + +public interface FileUploadService { + String fileUpload(MultipartFile multipartFile); +} diff --git a/HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java b/HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..6bbafaaa00e0a9959511b5a93a76c35e106e7444 --- /dev/null +++ b/HomeWork-java/src/com/wetoband/template/service/impl/FileUploadServiceImpl.java @@ -0,0 +1,68 @@ +package com.wetoband.template.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.wetoband.template.service.FileUploadService; + +import io.minio.BucketExistsArgs; +import io.minio.MakeBucketArgs; +import io.minio.MinioClient; +import io.minio.PutObjectArgs; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Date; +import java.util.UUID; + +@Service +public class FileUploadServiceImpl implements FileUploadService { + + @Override + public String fileUpload(MultipartFile multipartFile) { + + try { + String BucketName = "homeworktool";//存储桶名称 + + String endpoint = "http://8.138.182.34:9000";//文件服务器地址 + + //文件服务器用户名和密码 + String accessKey = "minio-username"; + + String serectKey = "minio-password"; + + // 创建一个Minio的客户端对象 + MinioClient minioClient = MinioClient.builder() + .endpoint(endpoint)//文件服务器地址 + .credentials(accessKey,serectKey)//文件服务器用户名和密码 + .build(); + + // 判断桶是否存在 + boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BucketName).build()); + if (!found) { // 如果不存在,那么此时就创建一个新的桶 + minioClient.makeBucket(MakeBucketArgs.builder().bucket(BucketName).build()); + } else { // 如果存在打印信息 + System.out.println("Bucket: "+BucketName+" already exists."); + } + + // 设置存储对象名称,这里为了防止文件名冲突所以要加上独一无二的标识来做出区分 + //而且还通过日期来进行文件夹的划分 + String dateDir = DateUtil.format(new Date(), "yyyyMMdd"); + String uuid = UUID.randomUUID().toString().replace("-", ""); + //示例文件名:20250201/443e1e772bef482c95be28704bec58a901.jpg + String fileName = dateDir+"/"+uuid+multipartFile.getOriginalFilename();//这里得到最终的文件名 + System.out.println(fileName); + + PutObjectArgs putObjectArgs = PutObjectArgs.builder() + .bucket(BucketName) + .stream(multipartFile.getInputStream(), multipartFile.getSize(), -1) + .object(fileName) + .build(); + minioClient.putObject(putObjectArgs) ; + + return endpoint + "/" + BucketName + "/" + fileName ; + + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/HomeWork-java/target/classes/config.properties b/HomeWork-java/target/classes/config.properties index c9af6a3edf8b2c522ecc4c6bde80f9e5c5964f74..bb52fb7284bcce4d897f40f21c075d33e4969552 100644 --- a/HomeWork-java/target/classes/config.properties +++ b/HomeWork-java/target/classes/config.properties @@ -36,4 +36,10 @@ MONGODB_PASSWORD=root SWAP_VALUE_MAX_SIZE=0 SWAP_VALUE_SERVER_PORT=6666 GET_SWAP_VALUE_IP=192.168.10.254 -GET_SWAP_VALUE_PORT=6666 \ No newline at end of file +GET_SWAP_VALUE_PORT=6666 + + + + + + diff --git a/HomeWork-java/tempResources/config.properties b/HomeWork-java/tempResources/config.properties index c9af6a3edf8b2c522ecc4c6bde80f9e5c5964f74..bb52fb7284bcce4d897f40f21c075d33e4969552 100644 --- a/HomeWork-java/tempResources/config.properties +++ b/HomeWork-java/tempResources/config.properties @@ -36,4 +36,10 @@ MONGODB_PASSWORD=root SWAP_VALUE_MAX_SIZE=0 SWAP_VALUE_SERVER_PORT=6666 GET_SWAP_VALUE_IP=192.168.10.254 -GET_SWAP_VALUE_PORT=6666 \ No newline at end of file +GET_SWAP_VALUE_PORT=6666 + + + + + +