|
|
@@ -0,0 +1,39 @@
|
|
|
+package cn.reghao.dfs.store.task;
|
|
|
+
|
|
|
+import cn.reghao.dfs.store.model.vo.ObjectResult;
|
|
|
+import cn.reghao.dfs.store.service.ObjectNameService;
|
|
|
+import cn.reghao.dfs.store.service.PutObjectService;
|
|
|
+import cn.reghao.dfs.store.util.StringUtil;
|
|
|
+import cn.reghao.oss.api.rest.UploadFileRet;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author reghao
|
|
|
+ * @date 2023-07-12 15:45:02
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class DiskFileProcessor {
|
|
|
+ private final PutObjectService putObjectService;
|
|
|
+ private final ObjectNameService objectNameService;
|
|
|
+
|
|
|
+ public DiskFileProcessor(PutObjectService putObjectService, ObjectNameService objectNameService) {
|
|
|
+ this.putObjectService = putObjectService;
|
|
|
+ this.objectNameService = objectNameService;
|
|
|
+ }
|
|
|
+
|
|
|
+ public UploadFileRet process(ObjectResult objectResult) {
|
|
|
+ String objectName = objectResult.getObjectName();
|
|
|
+ String objectId = objectResult.getObjectId();
|
|
|
+ String url = objectNameService.getObjectUrl(objectName);
|
|
|
+ boolean duplicate = objectResult.isDuplicate();
|
|
|
+ if (duplicate) {
|
|
|
+ String suffix = StringUtil.getSuffix(objectName);
|
|
|
+ ObjectResult objectResult1 = putObjectService.copyObject(objectName, suffix);
|
|
|
+ String objectId1 = objectResult1.getObjectId();
|
|
|
+ String url1 = objectNameService.getObjectUrl(objectResult1.getObjectName());
|
|
|
+ return new UploadFileRet(objectId1, url1);
|
|
|
+ }
|
|
|
+
|
|
|
+ return new UploadFileRet(objectId, url);
|
|
|
+ }
|
|
|
+}
|