This commit is contained in:
parent
e6e4a19ac8
commit
f9aa90a619
|
@ -47,11 +47,11 @@
|
|||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<!-- <dependency>
|
||||
<groupId>com.pig4cloud.plugin</groupId>
|
||||
<artifactId>oss-spring-boot-starter</artifactId>
|
||||
<version>3.0.0</version>
|
||||
</dependency>
|
||||
</dependency>-->
|
||||
|
||||
|
||||
<dependency>
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
package com.guwan.controller.login;
|
||||
|
||||
import com.guwan.config.MinioConfig;
|
||||
import com.guwan.util.UUIDUtil;
|
||||
import io.minio.MinioClient;
|
||||
import io.minio.PutObjectOptions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@RestController
|
||||
public class FaceController {
|
||||
|
||||
@Autowired
|
||||
private MinioConfig minioConfig;
|
||||
@Autowired
|
||||
private MinioClient minioClient;
|
||||
|
||||
|
||||
@GetMapping("/11")
|
||||
public String test() {
|
||||
try {
|
||||
// 调用statObject()来判断对象是否存在。
|
||||
// 如果不存在, statObject()抛出异常,
|
||||
// 否则则代表对象存在。
|
||||
minioClient.statObject(minioConfig.getBucketName(), "tempOrgImageFile");
|
||||
|
||||
//判断人脸照片是否合格
|
||||
//1.保存到本地
|
||||
InputStream tempInputStream = minioClient.getObject(minioConfig.getBucketName(), tempOrgImageFile);
|
||||
String tempPath = globalValue.getStaticLocations() + "/";//+globalValue.getTempDir()+"/";
|
||||
String tempOrgFilePath = tempPath + tempOrgImageFile;
|
||||
int index;
|
||||
byte[] bytes = new byte[1024];
|
||||
File outFile = new File(tempOrgFilePath);
|
||||
FileOutputStream downloadFile = new FileOutputStream(outFile);
|
||||
while ((index = tempInputStream.read(bytes)) != -1) {
|
||||
downloadFile.write(bytes, 0, index);
|
||||
downloadFile.flush();
|
||||
}
|
||||
downloadFile.close();
|
||||
tempInputStream.close();
|
||||
//2.测试上传的文件
|
||||
String tempFaceFileName = UUIDUtil.uuid() + ".jpg";
|
||||
String tempFaceFilePath = tempPath + tempFaceFileName;
|
||||
|
||||
String osName = System.getProperty("os.name");//获取指定键(即os.name)的系统属性,如:Windows 7。
|
||||
// if (Pattern.matches("Windows.*", osName)) {
|
||||
if (!Pattern.matches("Windows.*", osName)) {
|
||||
int res = PicSDK.getFace(tempOrgFilePath, tempFaceFilePath);
|
||||
if (res != 0) {
|
||||
log.error("图片不合格,未检测到人脸");
|
||||
// return 2;
|
||||
}
|
||||
//保存底片文件到oss
|
||||
InputStream inputStream = new FileInputStream(tempFaceFilePath);
|
||||
PutObjectOptions putObjectOptions = new PutObjectOptions(inputStream.available(), -1);
|
||||
putObjectOptions.setContentType("image/jpeg");
|
||||
minioClient.putObject(
|
||||
minioConfig.getBucketName(), faceImageFileName, inputStream, putObjectOptions);
|
||||
inputStream.close();
|
||||
} else {
|
||||
minioClient.copyObject(
|
||||
minioConfig.getBucketName(),
|
||||
faceImageFileName,
|
||||
null,
|
||||
null,
|
||||
minioConfig.getBucketName(),
|
||||
tempOrgImageFile,
|
||||
null,
|
||||
null);
|
||||
}
|
||||
//拷贝临时文件正式文件
|
||||
minioClient.copyObject(
|
||||
minioConfig.getBucketName(),
|
||||
orgImageFileName,
|
||||
null,
|
||||
null,
|
||||
minioConfig.getBucketName(),
|
||||
tempOrgImageFile,
|
||||
null,
|
||||
null);
|
||||
|
||||
entity.setOrgImage(orgImageFileName);
|
||||
entity.setFaceImage(faceImageFileName);
|
||||
//删除临时文件oss
|
||||
minioClient.removeObject(minioConfig.getBucketName(), tempOrgImageFile);
|
||||
//删除本地临时文件
|
||||
new File(tempFaceFilePath).delete();
|
||||
} catch (Exception e) {
|
||||
entity.setOrgImage("");
|
||||
entity.setFaceImage("");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -2,21 +2,16 @@ package com.guwan.controller.login;
|
|||
|
||||
import com.guwan.common.R;
|
||||
import com.guwan.config.MinioConfig;
|
||||
import com.pig4cloud.plugin.oss.service.OssTemplate;
|
||||
import io.minio.MinioClient;
|
||||
import io.minio.PutObjectOptions;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.http.entity.FileEntity;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.time.Duration;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
@RestController
|
||||
|
@ -29,42 +24,6 @@ public class UploadController {
|
|||
|
||||
private final MinioClient minioClient;
|
||||
|
||||
|
||||
private final OssTemplate template;
|
||||
/**
|
||||
* 上传文件
|
||||
* 文件名采用uuid,避免原始文件名中带"-"符号导致下载的时候解析出现异常
|
||||
* @param file 资源
|
||||
* @return R(bucketName, filename)
|
||||
*/
|
||||
@PostMapping("/upload")
|
||||
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||||
String fileName = uuid + originalFilename;
|
||||
template.putObject("demo", uuid + originalFilename, file.getInputStream());
|
||||
|
||||
|
||||
|
||||
|
||||
return fileName;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取外链
|
||||
* @param bucketName bucket名称
|
||||
* @param objectName 文件名称
|
||||
* @param minutes 过期时间,单位分钟,请注意该值必须小于7天
|
||||
* @return url
|
||||
*/
|
||||
|
||||
@GetMapping("/getDownloadExternalChain")
|
||||
public String get(String bucketName, String objectName, int minutes) {
|
||||
return template.getObjectURL(bucketName, objectName, Duration.ofMinutes(minutes));
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/GBUpload")
|
||||
public R gbUpload(MultipartFile file) {
|
||||
if (file.isEmpty() || file.getSize() == 0) {
|
||||
|
|
|
@ -2,12 +2,13 @@ package com.guwan.controller.login;
|
|||
|
||||
import com.guwan.service.TokenService;
|
||||
import com.guwan.util.IPUtils;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import jakarta.annotation.security.PermitAll;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
|
@ -21,7 +22,7 @@ public class UserController {
|
|||
@Operation(summary = "使用账号密码登录")
|
||||
public String login(String userId, HttpServletRequest request) {
|
||||
String ip = IPUtils.getIpAddr(request);
|
||||
System.out.println("ip = " + ip);
|
||||
System.out.println("ip111 = " + ip);
|
||||
return tokenService.createToken(userId, ip);
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package com.guwan.util;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class UUIDUtil {
|
||||
public static String uuid(){
|
||||
return UUID.randomUUID().toString().replace("-","");
|
||||
}
|
||||
public static void main(String args[]){
|
||||
String uuid = UUIDUtil.uuid();
|
||||
System.out.println(uuid);
|
||||
}
|
||||
}
|
|
@ -4,10 +4,10 @@ server:
|
|||
spring:
|
||||
data:
|
||||
redis:
|
||||
host: 1.92.149.170
|
||||
host: 123.57.30.183
|
||||
port: 6379
|
||||
password: 123456
|
||||
database: 0
|
||||
password: aliredis666
|
||||
database: 1
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://127.0.0.1:3306/studb
|
||||
|
@ -41,16 +41,13 @@ sa-token:
|
|||
|
||||
|
||||
|
||||
oss:
|
||||
endpoint: http://localhost:9000
|
||||
access-key: admin
|
||||
secret-key: admin123456
|
||||
|
||||
|
||||
|
||||
global:
|
||||
minio:
|
||||
endpoint: http://127.0.0.1:9000
|
||||
endpoint: http://1.92.149.170:9000
|
||||
port: 9000
|
||||
accessKey: admin
|
||||
secretKey: admin123456
|
||||
bucketName: yunnni
|
||||
bucketName: cuwan
|
Loading…
Reference in New Issue