|
|
@@ -2,6 +2,7 @@ package cn.reghao.dfs.store.controller;
|
|
|
|
|
|
import cn.reghao.dfs.store.model.vo.ObjectProp;
|
|
|
import cn.reghao.dfs.store.model.vo.ObjectResult;
|
|
|
+import cn.reghao.dfs.store.service.ChannelValidateService;
|
|
|
import cn.reghao.dfs.store.service.FileStoreService;
|
|
|
import cn.reghao.dfs.store.service.ObjectNameService;
|
|
|
import cn.reghao.dfs.store.service.PutObjectService;
|
|
|
@@ -28,13 +29,16 @@ import java.util.UUID;
|
|
|
*/
|
|
|
@RestController
|
|
|
public class ObjectUploadController {
|
|
|
+ private final ChannelValidateService channelValidateService;
|
|
|
private final FileStoreService fileStoreService;
|
|
|
private final ObjectNameService objectNameService;
|
|
|
private final PutObjectService putObjectService;
|
|
|
private final FileProcessor fileProcessor;
|
|
|
|
|
|
- public ObjectUploadController(FileStoreService fileStoreService, ObjectNameService objectNameService,
|
|
|
- PutObjectService putObjectService, FileProcessor fileProcessor) {
|
|
|
+ public ObjectUploadController(ChannelValidateService channelValidateService, FileStoreService fileStoreService,
|
|
|
+ ObjectNameService objectNameService, PutObjectService putObjectService,
|
|
|
+ FileProcessor fileProcessor) {
|
|
|
+ this.channelValidateService = channelValidateService;
|
|
|
this.fileStoreService = fileStoreService;
|
|
|
this.objectNameService = objectNameService;
|
|
|
this.putObjectService = putObjectService;
|
|
|
@@ -48,22 +52,26 @@ public class ObjectUploadController {
|
|
|
HttpServletRequest servletRequest = ServletUtil.getRequest();
|
|
|
int channelId = Integer.parseInt(servletRequest.getHeader("x-channel-id"));
|
|
|
String sha256sum = servletRequest.getHeader("x-content-sha256sum");
|
|
|
+ boolean ret = channelValidateService.validate(file, channelId);
|
|
|
+ if (!ret) {
|
|
|
+ return WebResult.failWithMsg("the format or size of upload file error");
|
|
|
+ }
|
|
|
|
|
|
FileInputStream fis = new FileInputStream(file);
|
|
|
String sha256sum1 = DigestUtil.sha256sum(fis);
|
|
|
- if (!sha256sum.equals(sha256sum1)) {
|
|
|
+ /*if (!sha256sum.equals(sha256sum1)) {
|
|
|
FileUtils.deleteQuietly(file);
|
|
|
return WebResult.failWithMsg("sha256sum not match");
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
String contentId = UUID.randomUUID().toString().replace("-", "");
|
|
|
File savedFile = fileStoreService.saveFile(file, contentId);
|
|
|
|
|
|
ObjectProp objectProp = objectNameService.getObjectProp(channelId);
|
|
|
String originalFilename = file.getName();
|
|
|
- ObjectResult objectResult = putObjectService.putObject(objectProp, contentId, savedFile, originalFilename, sha256sum);
|
|
|
+ ObjectResult objectResult = putObjectService.putObject(objectProp, contentId, savedFile, originalFilename, sha256sum1);
|
|
|
|
|
|
- UploadFileRet uploadFileRet = fileProcessor.process(objectResult);
|
|
|
+ UploadFileRet uploadFileRet = fileProcessor.process(objectResult, channelId);
|
|
|
if (uploadFileRet == null) {
|
|
|
String url = objectNameService.getObjectUrl(objectResult.getObjectName());
|
|
|
uploadFileRet = new UploadFileRet(objectResult.getObjectId(), url);
|
|
|
@@ -84,16 +92,20 @@ public class ObjectUploadController {
|
|
|
String contentId = UUID.randomUUID().toString().replace("-", "");
|
|
|
long size = file.getSize();
|
|
|
File savedFile = fileStoreService.saveFile(file.getInputStream(), contentId, size);
|
|
|
- String sha256sum1 = DigestUtil.sha256sum(savedFile.getAbsolutePath());
|
|
|
- if (!sha256sum.equals(sha256sum1)) {
|
|
|
- return WebResult.failWithMsg("sha256sum not match");
|
|
|
+ boolean ret = channelValidateService.validate(savedFile, channelId);
|
|
|
+ if (!ret) {
|
|
|
+ return WebResult.failWithMsg("the format or size of upload file error");
|
|
|
}
|
|
|
|
|
|
+ String sha256sum1 = DigestUtil.sha256sum(savedFile.getAbsolutePath());
|
|
|
+ /*if (!sha256sum.equals(sha256sum1)) {
|
|
|
+ return WebResult.failWithMsg("sha256sum not match");
|
|
|
+ }*/
|
|
|
ObjectProp objectProp = objectNameService.getObjectProp(channelId);
|
|
|
String originalFilename = file.getOriginalFilename();
|
|
|
- ObjectResult objectResult = putObjectService.putObject(objectProp, contentId, savedFile, originalFilename, sha256sum);
|
|
|
+ ObjectResult objectResult = putObjectService.putObject(objectProp, contentId, savedFile, originalFilename, sha256sum1);
|
|
|
|
|
|
- UploadFileRet uploadFileRet = fileProcessor.process(objectResult);
|
|
|
+ UploadFileRet uploadFileRet = fileProcessor.process(objectResult, channelId);
|
|
|
if (uploadFileRet == null) {
|
|
|
String url = objectNameService.getObjectUrl(objectResult.getObjectName());
|
|
|
uploadFileRet = new UploadFileRet(objectResult.getObjectId(), url);
|