|
@@ -37,7 +37,11 @@ import java.util.stream.Collectors;
|
|
|
public class SysFileMultipartServiceImpl implements SysFileMultipartService {
|
|
|
|
|
|
@Value("${tencent.cos.accessible-domain}")
|
|
|
- private String ACCESSIBLE_DOMAIN;
|
|
|
+ private String TENCENT_ACCESSIBLE_DOMAIN;
|
|
|
+
|
|
|
+ @Value("${douyin.tos.domain}")
|
|
|
+ private String DOUYIN_ACCESSIBLE_DOMAIN;
|
|
|
+
|
|
|
@Autowired
|
|
|
private HttpRequestUtil httpRequestUtil;
|
|
|
@Autowired
|
|
@@ -170,13 +174,9 @@ public class SysFileMultipartServiceImpl implements SysFileMultipartService {
|
|
|
// 3: 抖音云
|
|
|
if (UPLOAD_TARGET.get() == 3) {
|
|
|
UploadPartV2Output partResult = douyinTosService.uploadPart(multipartFile, upload_id, object_key, upload_chunk_index);
|
|
|
- part_etag = partResult.getEtag();
|
|
|
+ part_etag = partResult.getEtag().replace("\"", "");
|
|
|
}
|
|
|
|
|
|
-// // 查询分块上传情况 (获得下次要上传的位置)
|
|
|
-// PartListing partListing = listParts(upload_id, object_key);
|
|
|
-// Integer partNumberMarker = partListing.getPartNumberMarker() + 1;
|
|
|
-
|
|
|
// [Update] 更新分块文件信息
|
|
|
sysFileEntity.setUpload_chunk_index(upload_chunk_index);
|
|
|
sysFileDao.updateById(sysFileEntity);
|
|
@@ -221,7 +221,8 @@ public class SysFileMultipartServiceImpl implements SysFileMultipartService {
|
|
|
if (UPLOAD_TARGET.get() == 1) {
|
|
|
|
|
|
// 查询分块集合 (etag)
|
|
|
- PartListing partListing = listParts(upload_id, sysFileEntity.getObject_key());
|
|
|
+ Map<String, Object> partList = listParts(upload_id, sysFileEntity.getObject_key());
|
|
|
+ PartListing partListing = (PartListing) partList.get("listParts");
|
|
|
List<PartSummary> partSummaryList = partListing.getParts();
|
|
|
List<PartETag> etags = partSummaryList.stream()
|
|
|
.map(partSummary -> new PartETag(partSummary.getPartNumber(), partSummary.getETag()))
|
|
@@ -235,23 +236,8 @@ public class SysFileMultipartServiceImpl implements SysFileMultipartService {
|
|
|
if (completeResult == null) throw new CustException("分块合并失败");
|
|
|
|
|
|
// 拼接图片路径
|
|
|
- String url = ACCESSIBLE_DOMAIN + "/" + completeResult.getKey();
|
|
|
- sysFileEntity.setUrl(url);
|
|
|
+ sysFileEntity.setUrl(TENCENT_ACCESSIBLE_DOMAIN + "/" + completeResult.getKey());
|
|
|
sysFileEntity.setRequest_id(completeResult.getRequestId());
|
|
|
-
|
|
|
- // 设置封面
|
|
|
- setThumbUrl(sysFileEntity, UPLOAD_THUMB_SIZE.get(), UPLOAD_THUMB_SIZE.get(), StyleEnums.THUMB_BACKGROUND.getValue());
|
|
|
-
|
|
|
- // [db] 更新分块记录
|
|
|
- sysFileDao.updateCompleteFile(sysFileEntity);
|
|
|
-
|
|
|
- Map<String, Object> resp = new LinkedHashMap<>();
|
|
|
- resp.put("upload_id", upload_id);
|
|
|
- resp.put("request_id", completeResult.getRequestId());
|
|
|
- resp.put("object_key", completeResult.getKey());
|
|
|
- resp.put("url", url);
|
|
|
- return resp;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
// 3: 抖音云
|
|
@@ -260,17 +246,41 @@ public class SysFileMultipartServiceImpl implements SysFileMultipartService {
|
|
|
CompleteMultipartUploadV2Output completeResult = douyinTosService.completeMultipartUpload(upload_id, sysFileEntity.getObject_key());
|
|
|
if (completeResult == null) throw new CustException("分块合并失败");
|
|
|
|
|
|
-
|
|
|
+ // 拼接图片路径
|
|
|
+ sysFileEntity.setUrl(DOUYIN_ACCESSIBLE_DOMAIN + "/" + completeResult.getKey());
|
|
|
+ sysFileEntity.setRequest_id(completeResult.getRequestInfo().getRequestId());
|
|
|
|
|
|
}
|
|
|
|
|
|
- return null;
|
|
|
+ // 设置封面
|
|
|
+ setThumbUrl(sysFileEntity, UPLOAD_THUMB_SIZE.get(), UPLOAD_THUMB_SIZE.get(), StyleEnums.THUMB_BACKGROUND.getValue());
|
|
|
+
|
|
|
+ // [db] 更新分块记录
|
|
|
+ sysFileDao.updateCompleteFile(sysFileEntity);
|
|
|
+
|
|
|
+ Map<String, Object> resp = new LinkedHashMap<>();
|
|
|
+ resp.put("upload_id", upload_id);
|
|
|
+ resp.put("request_id", sysFileEntity.getRequest_id());
|
|
|
+ resp.put("object_key", sysFileEntity.getObject_key());
|
|
|
+ resp.put("url", sysFileEntity.getUrl());
|
|
|
+ return resp;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 查询分块上传情况
|
|
|
@Override
|
|
|
- public PartListing listParts(String upload_id, String object_key) {
|
|
|
- return tencentCosService.listParts(upload_id, object_key);
|
|
|
+ public Map<String, Object> listParts(String upload_id, String object_key) {
|
|
|
+
|
|
|
+ Integer UPLOAD_TARGET = Convert.toInt(sysCommonService.getCommonByTag("UPLOAD_TARGET"));
|
|
|
+ // target: 上传目标 (-1:本地, 1:腾讯云, 2:阿里云, 3.抖音云)
|
|
|
+ if (UPLOAD_TARGET == 1) {
|
|
|
+ return Map.of("listParts", tencentCosService.listParts(upload_id, object_key));
|
|
|
+ }
|
|
|
+ if (UPLOAD_TARGET == 3) {
|
|
|
+ return Map.of("listParts", douyinTosService.listParts(upload_id, object_key));
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
}
|