main
黄海 9 months ago
parent 163567897e
commit f4622f09ba

@ -179,7 +179,6 @@
<artifactId>log4j-api</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>

@ -1,44 +1,78 @@
package com.dsideal.resource.Res.Controller;
import com.dsideal.resource.Interceptor.EmptyInterface;
import com.dsideal.resource.Interceptor.JwtCheckInterface;
import com.dsideal.resource.Util.MinioUtils;
import com.dsideal.resource.Util.RetKit;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.GET;
import io.minio.errors.*;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class ResourceController extends Controller {
/**
* Minio
*
* @param extension
*/
@Before(GET.class)
@JwtCheckInterface({})
@EmptyInterface({"objectName"})
public void getSignature(String extension) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
if (!extension.equals(extension.toLowerCase())) {
renderJson(RetKit.renderFail("扩展名必须为小写"));
return;
}
//生成一个guid+扩展名的key
String objectName = java.util.UUID.randomUUID() + "." + extension;
String signature = MinioUtils.getSignature(objectName);
renderJson(RetKit.renderSuccess(signature));
}
/**
*
*/
public void addResource(){
public void addResource() {
}
/**
*
*
* @param resource_id_int id
*/
public void deleteResource(int resource_id_int){
public void deleteResource(int resource_id_int) {
}
/**
*
*
* @param resource_id_int id
*/
public void updateResource(int resource_id_int){
public void updateResource(int resource_id_int) {
}
/**
*
*
* @param resource_id_int id
*/
public void queryResource(int resource_id_int){
public void queryResource(int resource_id_int) {
}
/**
*
*/
public void queryAllResource(){
public void queryAllResource() {
}
}

@ -4,10 +4,12 @@ import cn.hutool.core.io.FileUtil;
import com.dsideal.resource.Plugin.YamlProp;
import com.jfinal.kit.PathKit;
import com.jfinal.kit.Prop;
import io.minio.GetPresignedObjectUrlArgs;
import io.minio.MinioClient;
import io.minio.SetBucketPolicyArgs;
import io.minio.UploadObjectArgs;
import io.minio.errors.*;
import io.minio.http.Method;
import java.io.IOException;
import java.security.InvalidKeyException;
@ -16,26 +18,64 @@ import java.security.NoSuchAlgorithmException;
import static com.dsideal.resource.ResApplication.getEnvPrefix;
public class MinioUtils {
public static Prop PropKit;
public static String minio_endpoint;
public static String minio_accesskey;
public static String minio_secretkey;
public static String bucketName;
static {
//加载配置文件
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
minio_endpoint = PropKit.get("minio.endpoint");
minio_accesskey = PropKit.get("minio.accessKey");
minio_secretkey = PropKit.get("minio.secretKey");
bucketName = PropKit.get("minio.bucketName");
}
/**
* Minio
*
* @return
*/
public static Prop PropKit;
public static MinioClient getMinioClient() {
//加载配置文件
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
String minio_endpoint = PropKit.get("minio.endpoint");
String minio_accesskey = PropKit.get("minio.accessKey");
String minio_secretkey = PropKit.get("minio.secretKey");
String bucketName = PropKit.get("minio.bucketName");
return MinioClient.builder()
.endpoint(minio_endpoint)
.credentials(minio_accesskey, minio_secretkey)
.build();
}
/**
*
* @param objectName
* @return
* @throws ServerException
* @throws InsufficientDataException
* @throws ErrorResponseException
* @throws IOException
* @throws NoSuchAlgorithmException
* @throws InvalidKeyException
* @throws InvalidResponseException
* @throws XmlParserException
* @throws InternalException
*/
public static String getSignature(String objectName) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
int expiresDuration = 600; // 过期时间为10*60秒
// 生成带有签名的URL
String url = getMinioClient().getPresignedObjectUrl(
GetPresignedObjectUrlArgs.builder()
.method(Method.GET)
.bucket(bucketName)
.object(objectName)
.expiry(expiresDuration)
.build());
return url;
}
/**
*
*

Loading…
Cancel
Save