From 93dcb28631389af295c4a926df84e18ca74061c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 30 Oct 2024 14:58:12 +0800 Subject: [PATCH] 'commit' --- dsRes/Doc/v1.0/.cache.json | 2 +- ...rce_Res_Controller_ResourceController.html | 37 ++++++++++++++++ dsRes/Doc/v1.0/dsRes-v1.0-api-docs.json | 21 +++++++++ dsRes/Doc/v1.0/index.html | 4 ++ .../Res/Controller/ResourceController.java | 44 +++++++++++++++---- .../resource/Res/Model/ResourceModel.java | 10 +++++ .../com/dsideal/resource/Util/MinioUtils.java | 2 - 7 files changed, 109 insertions(+), 11 deletions(-) diff --git a/dsRes/Doc/v1.0/.cache.json b/dsRes/Doc/v1.0/.cache.json index d142eb97..cb2876fb 100644 --- a/dsRes/Doc/v1.0/.cache.json +++ b/dsRes/Doc/v1.0/.cache.json @@ -1 +1 @@ -[{"baseUrl":"","className":"ResourceController","description":"ResourceController","docFileName":"com_dsideal_resource_Res_Controller_ResourceController.html","generateDocs":true,"packageName":"com.dsideal.resource.Res.Controller","requestNodes":[{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getSignature","deprecated":false,"description":"获取Minio的上传签名","header":[],"method":["GET","POST"],"methodName":"getSignature","paramNodes":[{"description":"上传的扩展名","jsonBody":false,"name":"extension","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getSignature"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#addResourceBase","deprecated":false,"description":"增加","header":[],"method":["GET","POST"],"methodName":"addResourceBase","paramNodes":[{"description":"资源名称","jsonBody":false,"name":"resource_title","required":false,"type":"string"},{"description":"资源大小","jsonBody":false,"name":"resource_size_int","required":false,"type":"long"},{"description":"扩展名","jsonBody":false,"name":"extension","required":false,"type":"string"},{"description":"对应文件的id号,是一个guid","jsonBody":false,"name":"file_id","required":false,"type":"string"},{"description":"文件的md5值","jsonBody":false,"name":"file_md5","required":false,"type":"string"},{"description":"结构id","jsonBody":false,"name":"scheme_id","required":false,"type":"int"},{"description":"结构id","jsonBody":false,"name":"structure_id","required":false,"type":"int"},{"description":"学段id","jsonBody":false,"name":"stage_id","required":false,"type":"int"},{"description":"科目id","jsonBody":false,"name":"subject_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/addResourceBase"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#delResourceBaseById","deprecated":false,"description":"删除","header":[],"method":["GET","POST"],"methodName":"delResourceBaseById","paramNodes":[{"description":"主键","jsonBody":false,"name":"resource_id_int","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/delResourceBaseById"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#updateResourceBaseById","deprecated":false,"description":"按ID修改","header":[],"method":["GET","POST"],"methodName":"updateResourceBaseById","paramNodes":[{"description":"主键","jsonBody":false,"name":"resource_id_int","required":false,"type":"int"},{"description":"资源名称","jsonBody":false,"name":"resource_title","required":false,"type":"string"},{"description":"资源大小","jsonBody":false,"name":"resource_size_int","required":false,"type":"long"},{"description":"上传人员id","jsonBody":false,"name":"person_id","required":false,"type":"string"},{"description":"结构id","jsonBody":false,"name":"scheme_id","required":false,"type":"int"},{"description":"结构id","jsonBody":false,"name":"structure_id","required":false,"type":"int"},{"description":"学段id","jsonBody":false,"name":"stage_id","required":false,"type":"int"},{"description":"科目id","jsonBody":false,"name":"subject_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/updateResourceBaseById"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getResourceBaseById","deprecated":false,"description":"按ID查询","header":[],"method":["GET","POST"],"methodName":"getResourceBaseById","paramNodes":[{"description":"主键","jsonBody":false,"name":"resource_id_int","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getResourceBaseById"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getResourceBaseList","deprecated":false,"description":"查询列表","header":[],"method":["GET","POST"],"methodName":"getResourceBaseList","paramNodes":[{"description":"学段","jsonBody":false,"name":"stage_id","required":false,"type":"int"},{"description":"版本","jsonBody":false,"name":"scheme_id","required":false,"type":"int"},{"description":"学科","jsonBody":false,"name":"subject_id","required":false,"type":"int"},{"description":"结构ID","jsonBody":false,"name":"structure_id","required":false,"type":"int"},{"description":"搜索关键词","jsonBody":false,"name":"keyword","required":false,"type":"string"},{"description":"页码","jsonBody":false,"name":"pageNum","required":false,"type":"int"},{"description":"每页数量","jsonBody":false,"name":"pageSize","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getResourceBaseList"}],"srcFileName":"D:\\dsWork\\dsProject\\dsRes\\src\\main\\java\\com\\dsideal\\resource\\Res\\Controller\\ResourceController.java"}] \ No newline at end of file +[{"baseUrl":"","className":"ResourceController","description":"ResourceController","docFileName":"com_dsideal_resource_Res_Controller_ResourceController.html","generateDocs":true,"packageName":"com.dsideal.resource.Res.Controller","requestNodes":[{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getSignature","deprecated":false,"description":"获取Minio的上传签名","header":[],"method":["GET","POST"],"methodName":"getSignature","paramNodes":[{"description":"上传的扩展名","jsonBody":false,"name":"extension","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getSignature"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getSignatureByMd5","deprecated":false,"description":"获取Minio的上传签名","header":[],"method":["GET","POST"],"methodName":"getSignatureByMd5","paramNodes":[{"description":"上传的扩展名","jsonBody":false,"name":"extension","required":false,"type":"string"},{"description":"文件md5值","jsonBody":false,"name":"file_md5","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getSignatureByMd5"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#addResourceBase","deprecated":false,"description":"增加","header":[],"method":["GET","POST"],"methodName":"addResourceBase","paramNodes":[{"description":"资源名称","jsonBody":false,"name":"resource_title","required":false,"type":"string"},{"description":"资源大小","jsonBody":false,"name":"resource_size_int","required":false,"type":"long"},{"description":"扩展名","jsonBody":false,"name":"extension","required":false,"type":"string"},{"description":"对应文件的id号,是一个guid","jsonBody":false,"name":"file_id","required":false,"type":"string"},{"description":"文件的md5值","jsonBody":false,"name":"file_md5","required":false,"type":"string"},{"description":"结构id","jsonBody":false,"name":"scheme_id","required":false,"type":"int"},{"description":"结构id","jsonBody":false,"name":"structure_id","required":false,"type":"int"},{"description":"学段id","jsonBody":false,"name":"stage_id","required":false,"type":"int"},{"description":"科目id","jsonBody":false,"name":"subject_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/addResourceBase"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#delResourceBaseById","deprecated":false,"description":"删除","header":[],"method":["GET","POST"],"methodName":"delResourceBaseById","paramNodes":[{"description":"主键","jsonBody":false,"name":"resource_id_int","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/delResourceBaseById"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#updateResourceBaseById","deprecated":false,"description":"按ID修改","header":[],"method":["GET","POST"],"methodName":"updateResourceBaseById","paramNodes":[{"description":"主键","jsonBody":false,"name":"resource_id_int","required":false,"type":"int"},{"description":"资源名称","jsonBody":false,"name":"resource_title","required":false,"type":"string"},{"description":"资源大小","jsonBody":false,"name":"resource_size_int","required":false,"type":"long"},{"description":"上传人员id","jsonBody":false,"name":"person_id","required":false,"type":"string"},{"description":"结构id","jsonBody":false,"name":"scheme_id","required":false,"type":"int"},{"description":"结构id","jsonBody":false,"name":"structure_id","required":false,"type":"int"},{"description":"学段id","jsonBody":false,"name":"stage_id","required":false,"type":"int"},{"description":"科目id","jsonBody":false,"name":"subject_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/updateResourceBaseById"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getResourceBaseById","deprecated":false,"description":"按ID查询","header":[],"method":["GET","POST"],"methodName":"getResourceBaseById","paramNodes":[{"description":"主键","jsonBody":false,"name":"resource_id_int","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getResourceBaseById"},{"changeFlag":0,"codeFileUrl":"com_dsideal_resource_Res_Controller_ResourceController.html#getResourceBaseList","deprecated":false,"description":"查询列表","header":[],"method":["GET","POST"],"methodName":"getResourceBaseList","paramNodes":[{"description":"学段","jsonBody":false,"name":"stage_id","required":false,"type":"int"},{"description":"版本","jsonBody":false,"name":"scheme_id","required":false,"type":"int"},{"description":"学科","jsonBody":false,"name":"subject_id","required":false,"type":"int"},{"description":"结构ID","jsonBody":false,"name":"structure_id","required":false,"type":"int"},{"description":"搜索关键词","jsonBody":false,"name":"keyword","required":false,"type":"string"},{"description":"页码","jsonBody":false,"name":"pageNum","required":false,"type":"int"},{"description":"每页数量","jsonBody":false,"name":"pageSize","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/res/getResourceBaseList"}],"srcFileName":"D:\\dsWork\\dsProject\\dsRes\\src\\main\\java\\com\\dsideal\\resource\\Res\\Controller\\ResourceController.java"}] \ No newline at end of file diff --git a/dsRes/Doc/v1.0/com_dsideal_resource_Res_Controller_ResourceController.html b/dsRes/Doc/v1.0/com_dsideal_resource_Res_Controller_ResourceController.html index 3f98277a..cbe06486 100644 --- a/dsRes/Doc/v1.0/com_dsideal_resource_Res_Controller_ResourceController.html +++ b/dsRes/Doc/v1.0/com_dsideal_resource_Res_Controller_ResourceController.html @@ -45,6 +45,9 @@ 获取Minio的上传签名 + + 获取Minio的上传签名 + 增加 @@ -102,6 +105,39 @@
+

获取Minio的上传签名

+

请求URL

+

+ /res/getSignatureByMd5 + GET + POST +

+

请求参数 application/x-www-form-urlencoded

+ + + + + + + + + + + + + + + + + + + +
参数名类型必须描述
extensionstring上传的扩展名
file_md5string文件md5值
+

返回结果

+
{}
+
+
+

增加

请求URL

@@ -376,6 +412,7 @@ var search_source_data = [ {name: 'ResourceController.获取Minio的上传签名', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#getSignature'}, + {name: 'ResourceController.获取Minio的上传签名', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#getSignatureByMd5'}, {name: 'ResourceController.增加', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#addResourceBase'}, {name: 'ResourceController.删除', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#delResourceBaseById'}, {name: 'ResourceController.按ID修改', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#updateResourceBaseById'}, diff --git a/dsRes/Doc/v1.0/dsRes-v1.0-api-docs.json b/dsRes/Doc/v1.0/dsRes-v1.0-api-docs.json index 44108a0d..6541aabf 100644 --- a/dsRes/Doc/v1.0/dsRes-v1.0-api-docs.json +++ b/dsRes/Doc/v1.0/dsRes-v1.0-api-docs.json @@ -16,6 +16,27 @@ }, "name": "获取Minio的上传签名" }, + { + "request": { + "method": "GET", + "url": { + "query": [ + { + "description": "上传的扩展名", + "value": "", + "key": "extension" + }, + { + "description": "文件md5值", + "value": "", + "key": "file_md5" + } + ], + "raw": "{{domain}}/res/getSignatureByMd5" + } + }, + "name": "获取Minio的上传签名" + }, { "request": { "method": "POST", diff --git a/dsRes/Doc/v1.0/index.html b/dsRes/Doc/v1.0/index.html index 328c1674..7c422df8 100644 --- a/dsRes/Doc/v1.0/index.html +++ b/dsRes/Doc/v1.0/index.html @@ -45,6 +45,9 @@ 获取Minio的上传签名 + + 获取Minio的上传签名 + 增加 @@ -93,6 +96,7 @@ var search_source_data = [ {name: 'ResourceController.获取Minio的上传签名', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#getSignature'}, + {name: 'ResourceController.获取Minio的上传签名', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#getSignatureByMd5'}, {name: 'ResourceController.增加', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#addResourceBase'}, {name: 'ResourceController.删除', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#delResourceBaseById'}, {name: 'ResourceController.按ID修改', url: 'com_dsideal_resource_Res_Controller_ResourceController.html#updateResourceBaseById'}, diff --git a/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java b/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java index 5b415c57..6b064f28 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java +++ b/dsRes/src/main/java/com/dsideal/resource/Res/Controller/ResourceController.java @@ -51,6 +51,33 @@ public class ResourceController extends Controller { renderJson(RetKit.renderSuccess(record)); } + /** + * 获取Minio的上传签名 + * + * @param extension 上传的扩展名 + * @param file_md5 文件md5值 + */ + @Before(GET.class) + @JwtCheckInterface({}) + @EmptyInterface({"extension"}) + public void getSignatureByMd5(String extension, String file_md5) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { + if (!extension.equals(extension.toLowerCase())) { + renderJson(RetKit.renderFail("扩展名必须为小写")); + return; + } + Record rResource = rm.getResourceByFileMd5(file_md5); + if (rResource == null) { + //生成一个guid+扩展名的key + String objectName = java.util.UUID.randomUUID() + "." + extension; + String signature = MinioUtils.getSignature("resources/" + objectName); + Record record = new Record(); + record.set("object_name", objectName); + record.set("signature", signature); + renderJson(RetKit.renderSuccess(record)); + } else { + renderJson(RetKit.renderSuccess(rResource)); + } + } /** * 增加 @@ -136,19 +163,20 @@ public class ResourceController extends Controller { /** * 查询列表 - * @param stage_id 学段 - * @param scheme_id 版本 - * @param subject_id 学科 + * + * @param stage_id 学段 + * @param scheme_id 版本 + * @param subject_id 学科 * @param structure_id 结构ID - * @param keyword 搜索关键词 - * @param pageNum 页码 - * @param pageSize 每页数量 + * @param keyword 搜索关键词 + * @param pageNum 页码 + * @param pageSize 每页数量 */ @Before({GET.class}) //@JwtCheckInterface({}) - @IsNumericInterface({"pageNum", "pageSize","structure_id"}) + @IsNumericInterface({"pageNum", "pageSize", "structure_id"}) public void getResourceBaseList(int stage_id, int scheme_id, int subject_id, int structure_id, String keyword, int pageNum, int pageSize) { - Page listPage = rm.getResourceBaseList(stage_id,scheme_id,subject_id,structure_id,keyword,pageNum, pageSize); + Page listPage = rm.getResourceBaseList(stage_id, scheme_id, subject_id, structure_id, keyword, pageNum, pageSize); renderJson(RetKit.renderSuccess(listPage)); } } diff --git a/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java b/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java index 2ce21fd2..e22cfd72 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java +++ b/dsRes/src/main/java/com/dsideal/resource/Res/Model/ResourceModel.java @@ -143,4 +143,14 @@ public class ResourceModel { return record.getStr("thumb_name"); } + /** + * 根据文件md5查询文件 + * + * @param file_md5 文件md5 + * @return + */ + public Record getResourceByFileMd5(String file_md5) { + String sql = "select * from t_resource_base where file_md5=?"; + return Db.findFirst(sql, file_md5); + } } diff --git a/dsRes/src/main/java/com/dsideal/resource/Util/MinioUtils.java b/dsRes/src/main/java/com/dsideal/resource/Util/MinioUtils.java index 1babf2e6..4055f648 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Util/MinioUtils.java +++ b/dsRes/src/main/java/com/dsideal/resource/Util/MinioUtils.java @@ -64,14 +64,12 @@ public class MinioUtils { * @throws InternalException */ public static String getSignature(String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { - int expiresDuration = 60 * 60 * 24; // 过期时间为24小时 // 生成带有签名的URL return getMinioClient().getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Method.PUT) .bucket(bucketName) .object(objectName) - .expiry(expiresDuration) .build()); }