main
黄海 9 months ago
parent ced1564eb2
commit 93dcb28631

File diff suppressed because one or more lines are too long

@ -45,6 +45,9 @@
<a class="catalog-item" href="com_dsideal_resource_Res_Controller_ResourceController.html#getSignature">
获取Minio的上传签名
</a>
<a class="catalog-item" href="com_dsideal_resource_Res_Controller_ResourceController.html#getSignatureByMd5">
获取Minio的上传签名
</a>
<a class="catalog-item" href="com_dsideal_resource_Res_Controller_ResourceController.html#addResourceBase">
增加
</a>
@ -102,6 +105,39 @@
</div>
<hr>
<div class="action-item">
<h2 id="getSignatureByMd5"><a href="#">获取Minio的上传签名 </a></h2>
<p><strong>请求URL</strong></p>
<p>
<code>/res/getSignatureByMd5</code>
<span class="label label-default">GET</span>
<span class="label label-default">POST</span>
</p>
<p><strong>请求参数</strong> <span class="badge">application/x-www-form-urlencoded</span></p>
<table class="table table-bordered">
<tr>
<th>参数名</th>
<th>类型</th>
<th>必须</th>
<th>描述</th>
</tr>
<tr>
<td>extension</td>
<td>string</td>
<td></td>
<td>上传的扩展名</td>
</tr>
<tr>
<td>file_md5</td>
<td>string</td>
<td></td>
<td>文件md5值</td>
</tr>
</table>
<p><strong>返回结果</strong></p>
<pre class="prettyprint lang-json">{}</pre>
</div>
<hr>
<div class="action-item">
<h2 id="addResourceBase"><a href="#">增加 </a></h2>
<p><strong>请求URL</strong></p>
<p>
@ -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'},

@ -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",

@ -45,6 +45,9 @@
<a class="catalog-item" href="com_dsideal_resource_Res_Controller_ResourceController.html#getSignature">
获取Minio的上传签名
</a>
<a class="catalog-item" href="com_dsideal_resource_Res_Controller_ResourceController.html#getSignatureByMd5">
获取Minio的上传签名
</a>
<a class="catalog-item" href="com_dsideal_resource_Res_Controller_ResourceController.html#addResourceBase">
增加
</a>
@ -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'},

@ -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<Record> listPage = rm.getResourceBaseList(stage_id,scheme_id,subject_id,structure_id,keyword,pageNum, pageSize);
Page<Record> listPage = rm.getResourceBaseList(stage_id, scheme_id, subject_id, structure_id, keyword, pageNum, pageSize);
renderJson(RetKit.renderSuccess(listPage));
}
}

@ -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);
}
}

@ -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());
}

Loading…
Cancel
Save