refactor(缺陷管理): 优化缺陷附件同步逻辑

This commit is contained in:
song-cc-rock 2024-03-14 20:26:49 +08:00 committed by Craftsman
parent 47222ebd3f
commit e26bb58dd9
3 changed files with 31 additions and 32 deletions

View File

@ -41,6 +41,11 @@ public class LocalRepositoryDir {
* system/cache * system/cache
*/ */
private static final String SYSTEM_CACHE_DIR = SYSTEM_ROOT_DIR + "/cache"; private static final String SYSTEM_CACHE_DIR = SYSTEM_ROOT_DIR + "/cache";
/**
* 缺陷的文件临时目录
*/
private static final String BUG_TMP_DIR = ROOT_DIR + "/bug";
/*------ end: 系统下资源目录 --------*/ /*------ end: 系统下资源目录 --------*/
public static String getPluginDir() { public static String getPluginDir() {
@ -58,4 +63,8 @@ public class LocalRepositoryDir {
public static String getFuncJarDir() { public static String getFuncJarDir() {
return ROOT_DIR + "/api/func-jar"; return ROOT_DIR + "/api/func-jar";
} }
public static String getBugTmpDir() {
return BUG_TMP_DIR;
}
} }

View File

@ -28,6 +28,7 @@ import io.metersphere.project.service.FileAssociationService;
import io.metersphere.project.service.FileMetadataService; import io.metersphere.project.service.FileMetadataService;
import io.metersphere.project.service.FileService; import io.metersphere.project.service.FileService;
import io.metersphere.sdk.constants.DefaultRepositoryDir; import io.metersphere.sdk.constants.DefaultRepositoryDir;
import io.metersphere.sdk.constants.LocalRepositoryDir;
import io.metersphere.sdk.constants.StorageType; import io.metersphere.sdk.constants.StorageType;
import io.metersphere.sdk.exception.MSException; import io.metersphere.sdk.exception.MSException;
import io.metersphere.sdk.file.FileCenter; import io.metersphere.sdk.file.FileCenter;
@ -134,18 +135,17 @@ public class BugAttachmentService {
*/ */
public void uploadFile(BugUploadFileRequest request, MultipartFile file, String currentUser) { public void uploadFile(BugUploadFileRequest request, MultipartFile file, String currentUser) {
Bug bug = bugMapper.selectByPrimaryKey(request.getBugId()); Bug bug = bugMapper.selectByPrimaryKey(request.getBugId());
File tempFileDir = new File(Objects.requireNonNull(getClass().getClassLoader().getResource(StringUtils.EMPTY)).getPath());
List<SyncAttachmentToPlatformRequest> platformAttachments = new ArrayList<>(); List<SyncAttachmentToPlatformRequest> platformAttachments = new ArrayList<>();
if (file == null) { if (file == null) {
// 缺陷与文件库关联 // 缺陷与文件库关联
if (CollectionUtils.isEmpty(request.getSelectIds())) { if (CollectionUtils.isEmpty(request.getSelectIds())) {
return; return;
} }
List<SyncAttachmentToPlatformRequest> syncLinkFiles = uploadLinkFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), tempFileDir, request.getSelectIds(), currentUser, bug.getPlatform(), false); List<SyncAttachmentToPlatformRequest> syncLinkFiles = uploadLinkFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), request.getSelectIds(), currentUser, bug.getPlatform(), false);
platformAttachments.addAll(syncLinkFiles); platformAttachments.addAll(syncLinkFiles);
} else { } else {
// 上传文件 // 上传文件
List<SyncAttachmentToPlatformRequest> syncLocalFiles = uploadLocalFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), tempFileDir, file, currentUser, bug.getPlatform()); List<SyncAttachmentToPlatformRequest> syncLocalFiles = uploadLocalFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), file, currentUser, bug.getPlatform());
platformAttachments.addAll(syncLocalFiles); platformAttachments.addAll(syncLocalFiles);
} }
@ -161,17 +161,15 @@ public class BugAttachmentService {
*/ */
public void deleteFile(BugDeleteFileRequest request) { public void deleteFile(BugDeleteFileRequest request) {
Bug bug = bugMapper.selectByPrimaryKey(request.getBugId()); Bug bug = bugMapper.selectByPrimaryKey(request.getBugId());
File tempFileDir = new File(Objects.requireNonNull(getClass().getClassLoader().getResource(StringUtils.EMPTY)).getPath());
List<SyncAttachmentToPlatformRequest> platformAttachments = new ArrayList<>(); List<SyncAttachmentToPlatformRequest> platformAttachments = new ArrayList<>();
if (request.getAssociated()) { if (request.getAssociated()) {
// 取消关联 // 取消关联
List<SyncAttachmentToPlatformRequest> syncLinkFiles = unLinkFile(bug.getPlatformBugId(), request.getProjectId(), List<SyncAttachmentToPlatformRequest> syncLinkFiles = unLinkFile(bug.getPlatformBugId(), request.getProjectId(), request.getRefId(), bug.getCreateUser(), bug.getPlatform(), false);
tempFileDir, request.getRefId(), bug.getCreateUser(), bug.getPlatform(), false);
platformAttachments.addAll(syncLinkFiles); platformAttachments.addAll(syncLinkFiles);
} else { } else {
// 删除本地上传的文件 // 删除本地上传的文件
List<SyncAttachmentToPlatformRequest> syncLocalFiles = List<SyncAttachmentToPlatformRequest> syncLocalFiles =
deleteLocalFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), tempFileDir, request.getRefId(), bug.getPlatform()); deleteLocalFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), request.getRefId(), bug.getPlatform());
platformAttachments.addAll(syncLocalFiles); platformAttachments.addAll(syncLocalFiles);
} }
// 同步至第三方(异步调用) // 同步至第三方(异步调用)
@ -199,7 +197,7 @@ public class BugAttachmentService {
} }
/** /**
* 转存附至文件库 * 转存附至文件库
* @param request 请求参数 * @param request 请求参数
* @param currentUser 当前用户 * @param currentUser 当前用户
* @return 文件ID * @return 文件ID
@ -217,7 +215,7 @@ public class BugAttachmentService {
association.setModuleId(request.getModuleId()); association.setModuleId(request.getModuleId());
fileId = fileAssociationService.transferAndAssociation(association); fileId = fileAssociationService.transferAndAssociation(association);
// 删除本地上传的附件 // 删除本地上传的附件
deleteLocalFile(request.getBugId(), null, request.getProjectId(), null, attachment.getId(), null); deleteLocalFile(request.getBugId(), null, request.getProjectId(), attachment.getId(), null);
} catch (MSException e) { } catch (MSException e) {
throw e; throw e;
} catch (Exception e) { } catch (Exception e) {
@ -234,14 +232,12 @@ public class BugAttachmentService {
*/ */
public String upgrade(BugDeleteFileRequest request, String currentUser) { public String upgrade(BugDeleteFileRequest request, String currentUser) {
Bug bug = bugMapper.selectByPrimaryKey(request.getBugId()); Bug bug = bugMapper.selectByPrimaryKey(request.getBugId());
File tempFileDir = new File(Objects.requireNonNull(getClass().getClassLoader().getResource(StringUtils.EMPTY)).getPath());
// 取消关联附件->同步 // 取消关联附件->同步
List<SyncAttachmentToPlatformRequest> syncUnlinkFiles = unLinkFile(bug.getPlatformBugId(), request.getProjectId(), List<SyncAttachmentToPlatformRequest> syncUnlinkFiles = unLinkFile(bug.getPlatformBugId(), request.getProjectId(), request.getRefId(), currentUser, bug.getPlatform(), true);
tempFileDir, request.getRefId(), currentUser, bug.getPlatform(), true);
// 更新后的文件需要同步 // 更新后的文件需要同步
String upgradeFileId = fileAssociationService.upgrade(request.getRefId(), createFileLogRecord(currentUser, request.getProjectId())); String upgradeFileId = fileAssociationService.upgrade(request.getRefId(), createFileLogRecord(currentUser, request.getProjectId()));
// 关联附件->同步 // 关联附件->同步
List<SyncAttachmentToPlatformRequest> syncLinkFiles = uploadLinkFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), tempFileDir, List.of(upgradeFileId), currentUser, bug.getPlatform(), true); List<SyncAttachmentToPlatformRequest> syncLinkFiles = uploadLinkFile(bug.getId(), bug.getPlatformBugId(), request.getProjectId(), List.of(upgradeFileId), currentUser, bug.getPlatform(), true);
List<SyncAttachmentToPlatformRequest> platformAttachments = Stream.concat(syncUnlinkFiles.stream(), syncLinkFiles.stream()).toList(); List<SyncAttachmentToPlatformRequest> platformAttachments = Stream.concat(syncUnlinkFiles.stream(), syncLinkFiles.stream()).toList();
if (!StringUtils.equals(bug.getPlatform(), BugPlatform.LOCAL.getName())) { if (!StringUtils.equals(bug.getPlatform(), BugPlatform.LOCAL.getName())) {
bugPlatformService.syncAttachmentToPlatform(platformAttachments, request.getProjectId()); bugPlatformService.syncAttachmentToPlatform(platformAttachments, request.getProjectId());
@ -418,13 +414,12 @@ public class BugAttachmentService {
* @param bugId 缺陷ID * @param bugId 缺陷ID
* @param platformBugKey 平台缺陷ID * @param platformBugKey 平台缺陷ID
* @param projectId 项目ID * @param projectId 项目ID
* @param tmpFileDir 临时文件目录
* @param linkFileIds 关联文件ID集合 * @param linkFileIds 关联文件ID集合
* @param currentUser 创建人 * @param currentUser 创建人
* @param platformName 平台名称 * @param platformName 平台名称
* @return 同步至平台的附件集合 * @return 同步至平台的附件集合
*/ */
private List<SyncAttachmentToPlatformRequest> uploadLinkFile(String bugId, String platformBugKey, String projectId, File tmpFileDir, private List<SyncAttachmentToPlatformRequest> uploadLinkFile(String bugId, String platformBugKey, String projectId,
List<String> linkFileIds, String currentUser, String platformName, boolean syncOnly) { List<String> linkFileIds, String currentUser, String platformName, boolean syncOnly) {
if (!syncOnly) { if (!syncOnly) {
fileAssociationService.association(bugId, FileAssociationSourceUtil.SOURCE_TYPE_BUG, linkFileIds, createFileLogRecord(currentUser, projectId)); fileAssociationService.association(bugId, FileAssociationSourceUtil.SOURCE_TYPE_BUG, linkFileIds, createFileLogRecord(currentUser, projectId));
@ -438,7 +433,7 @@ public class BugAttachmentService {
FileMetadata meta = fileMetadataMap.get(fileId); FileMetadata meta = fileMetadataMap.get(fileId);
if (meta != null) { if (meta != null) {
try { try {
File uploadTmpFile = new File(tmpFileDir, meta.getName() + "." + meta.getType()); File uploadTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + meta.getName() + "." + meta.getType());
byte[] fileByte = fileMetadataService.getFileByte(meta); byte[] fileByte = fileMetadataService.getFileByte(meta);
FileUtils.writeByteArrayToFile(uploadTmpFile, fileByte); FileUtils.writeByteArrayToFile(uploadTmpFile, fileByte);
linkSyncFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType())); linkSyncFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType()));
@ -456,13 +451,12 @@ public class BugAttachmentService {
* @param bugId 缺陷ID * @param bugId 缺陷ID
* @param platformBugKey 平台缺陷ID * @param platformBugKey 平台缺陷ID
* @param projectId 项目ID * @param projectId 项目ID
* @param tmpFileDir 临时文件目录
* @param file 上传的本地文件 * @param file 上传的本地文件
* @param currentUser 创建人 * @param currentUser 创建人
* @param platformName 平台名称 * @param platformName 平台名称
* @return 同步至平台的附件集合 * @return 同步至平台的附件集合
*/ */
private List<SyncAttachmentToPlatformRequest> uploadLocalFile(String bugId, String platformBugKey, String projectId, File tmpFileDir, private List<SyncAttachmentToPlatformRequest> uploadLocalFile(String bugId, String platformBugKey, String projectId,
MultipartFile file, String currentUser, String platformName) { MultipartFile file, String currentUser, String platformName) {
MsFileUtils.validateFileName(file.getOriginalFilename()); MsFileUtils.validateFileName(file.getOriginalFilename());
BugLocalAttachment record = new BugLocalAttachment(); BugLocalAttachment record = new BugLocalAttachment();
@ -481,7 +475,7 @@ public class BugAttachmentService {
fileService.upload(file, fileRequest); fileService.upload(file, fileRequest);
if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) { if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) {
// 非本地平台同步附件到平台 // 非本地平台同步附件到平台
File uploadTmpFile = new File(tmpFileDir, Objects.requireNonNull(file.getOriginalFilename())).toPath().normalize().toFile(); File uploadTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + file.getOriginalFilename());
FileUtils.writeByteArrayToFile(uploadTmpFile, file.getBytes()); FileUtils.writeByteArrayToFile(uploadTmpFile, file.getBytes());
localSyncFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType())); localSyncFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType()));
} }
@ -495,13 +489,12 @@ public class BugAttachmentService {
* 取消关联文件(同步至平台) * 取消关联文件(同步至平台)
* @param platformBugKey 平台缺陷ID * @param platformBugKey 平台缺陷ID
* @param projectId 项目ID * @param projectId 项目ID
* @param tmpFileDir 临时文件目录
* @param refId 取消关联的文件引用ID * @param refId 取消关联的文件引用ID
* @param currentUser 创建人 * @param currentUser 创建人
* @param platformName 平台名称 * @param platformName 平台名称
* @return 同步至平台的附件集合 * @return 同步至平台的附件集合
*/ */
private List<SyncAttachmentToPlatformRequest> unLinkFile(String platformBugKey, String projectId, File tmpFileDir, private List<SyncAttachmentToPlatformRequest> unLinkFile(String platformBugKey, String projectId,
String refId, String currentUser, String platformName, boolean syncOnly) { String refId, String currentUser, String platformName, boolean syncOnly) {
List<SyncAttachmentToPlatformRequest> linkSyncFiles = new ArrayList<>(); List<SyncAttachmentToPlatformRequest> linkSyncFiles = new ArrayList<>();
FileAssociation association = fileAssociationMapper.selectByPrimaryKey(refId); FileAssociation association = fileAssociationMapper.selectByPrimaryKey(refId);
@ -510,7 +503,7 @@ public class BugAttachmentService {
FileMetadata fileMetadata = fileMetadataMapper.selectByExample(example).get(0); FileMetadata fileMetadata = fileMetadataMapper.selectByExample(example).get(0);
// 取消关联的附件同步至平台 // 取消关联的附件同步至平台
if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) { if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) {
File deleteTmpFile = new File(tmpFileDir, fileMetadata.getName() + "." + fileMetadata.getType()); File deleteTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + fileMetadata.getName() + "." + fileMetadata.getType());
linkSyncFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, deleteTmpFile, SyncAttachmentType.DELETE.syncOperateType())); linkSyncFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, deleteTmpFile, SyncAttachmentType.DELETE.syncOperateType()));
} }
// 取消关联的附件, FILE_ASSOCIATION表 // 取消关联的附件, FILE_ASSOCIATION表
@ -525,12 +518,11 @@ public class BugAttachmentService {
* @param bugId 缺陷ID * @param bugId 缺陷ID
* @param platformBugKey 平台缺陷ID * @param platformBugKey 平台缺陷ID
* @param projectId 项目ID * @param projectId 项目ID
* @param tmpFileDir 临时文件目录
* @param refId 关联ID * @param refId 关联ID
* @param platformName 平台名称 * @param platformName 平台名称
* @return 同步至平台的附件集合 * @return 同步至平台的附件集合
*/ */
private List<SyncAttachmentToPlatformRequest> deleteLocalFile(String bugId, String platformBugKey, String projectId, File tmpFileDir, private List<SyncAttachmentToPlatformRequest> deleteLocalFile(String bugId, String platformBugKey, String projectId,
String refId, String platformName) { String refId, String platformName) {
List<SyncAttachmentToPlatformRequest> syncLocalFiles = new ArrayList<>(); List<SyncAttachmentToPlatformRequest> syncLocalFiles = new ArrayList<>();
BugLocalAttachment localAttachment = bugLocalAttachmentMapper.selectByPrimaryKey(refId); BugLocalAttachment localAttachment = bugLocalAttachmentMapper.selectByPrimaryKey(refId);
@ -541,7 +533,7 @@ public class BugAttachmentService {
fileService.deleteFile(fileRequest); fileService.deleteFile(fileRequest);
// 删除的本地的附件同步至平台 // 删除的本地的附件同步至平台
if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) { if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) {
File deleteTmpFile = new File(tmpFileDir, localAttachment.getFileName()); File deleteTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + localAttachment.getFileName());
syncLocalFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, deleteTmpFile, SyncAttachmentType.DELETE.syncOperateType())); syncLocalFiles.add(new SyncAttachmentToPlatformRequest(platformBugKey, deleteTmpFile, SyncAttachmentType.DELETE.syncOperateType()));
} }
} catch (Exception e) { } catch (Exception e) {

View File

@ -913,11 +913,10 @@ public class BugService {
* 1. 先处理删除, 及取消关联的附件 * 1. 先处理删除, 及取消关联的附件
* 2. 再处理新上传的, 新关联的附件 * 2. 再处理新上传的, 新关联的附件
*/ */
File tempFileDir = new File(Objects.requireNonNull(this.getClass().getClassLoader().getResource(StringUtils.EMPTY)).getPath());
// 同步删除附件集合 // 同步删除附件集合
List<SyncAttachmentToPlatformRequest> removeAttachments = removeAttachment(request, platformBug, currentUser, platformName); List<SyncAttachmentToPlatformRequest> removeAttachments = removeAttachment(request, platformBug, currentUser, platformName);
// 同步上传附件集合 // 同步上传附件集合
List<SyncAttachmentToPlatformRequest> uploadAttachments = uploadAttachment(request, files, platformBug, currentUser, platformName, tempFileDir); List<SyncAttachmentToPlatformRequest> uploadAttachments = uploadAttachment(request, files, platformBug, currentUser, platformName);
// 附件汇总 // 附件汇总
List<SyncAttachmentToPlatformRequest> allSyncAttachments = Stream.concat(removeAttachments.stream(), uploadAttachments.stream()).toList(); List<SyncAttachmentToPlatformRequest> allSyncAttachments = Stream.concat(removeAttachments.stream(), uploadAttachments.stream()).toList();
@ -989,11 +988,10 @@ public class BugService {
* @param platformBug 平台缺陷 * @param platformBug 平台缺陷
* @param currentUser 当前用户 * @param currentUser 当前用户
* @param platformName 平台名称 * @param platformName 平台名称
* @param tempFileDir 临时文件目录
* @return 同步删除附件集合 * @return 同步删除附件集合
*/ */
private List<SyncAttachmentToPlatformRequest> uploadAttachment(BugEditRequest request, List<MultipartFile> files, PlatformBugUpdateDTO platformBug, private List<SyncAttachmentToPlatformRequest> uploadAttachment(BugEditRequest request, List<MultipartFile> files, PlatformBugUpdateDTO platformBug,
String currentUser, String platformName, File tempFileDir) { String currentUser, String platformName) {
List<SyncAttachmentToPlatformRequest> uploadPlatformAttachments = new ArrayList<>(); List<SyncAttachmentToPlatformRequest> uploadPlatformAttachments = new ArrayList<>();
// 复制的附件 // 复制的附件
List<BugLocalAttachment> copyFiles = new ArrayList<>(); List<BugLocalAttachment> copyFiles = new ArrayList<>();
@ -1014,7 +1012,7 @@ public class BugService {
FileCenter.getDefaultRepository().saveFile(bytes, buildBugFileRequest(request.getProjectId(), request.getId(), localAttachment.getFileId(), localFile.getFileName())); FileCenter.getDefaultRepository().saveFile(bytes, buildBugFileRequest(request.getProjectId(), request.getId(), localAttachment.getFileId(), localFile.getFileName()));
// 同步新上传的附件至平台 // 同步新上传的附件至平台
if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) { if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) {
File uploadTmpFile = new File(tempFileDir, Objects.requireNonNull(localFile.getFileName())).toPath().normalize().toFile(); File uploadTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + localFile.getFileName());
FileUtils.writeByteArrayToFile(uploadTmpFile, bytes); FileUtils.writeByteArrayToFile(uploadTmpFile, bytes);
uploadPlatformAttachments.add(new SyncAttachmentToPlatformRequest(platformBug.getPlatformBugKey(), uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType())); uploadPlatformAttachments.add(new SyncAttachmentToPlatformRequest(platformBug.getPlatformBugKey(), uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType()));
} }
@ -1046,7 +1044,7 @@ public class BugService {
fileService.upload(file, fileRequest); fileService.upload(file, fileRequest);
// 同步新上传的附件至平台 // 同步新上传的附件至平台
if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) { if (!StringUtils.equals(platformName, BugPlatform.LOCAL.getName())) {
File uploadTmpFile = new File(tempFileDir, Objects.requireNonNull(file.getOriginalFilename())).toPath().normalize().toFile(); File uploadTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + file.getOriginalFilename());
FileUtils.writeByteArrayToFile(uploadTmpFile, file.getBytes()); FileUtils.writeByteArrayToFile(uploadTmpFile, file.getBytes());
uploadPlatformAttachments.add(new SyncAttachmentToPlatformRequest(platformBug.getPlatformBugKey(), uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType())); uploadPlatformAttachments.add(new SyncAttachmentToPlatformRequest(platformBug.getPlatformBugKey(), uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType()));
} }
@ -1070,7 +1068,7 @@ public class BugService {
FileMetadata meta = fileMetadataMap.get(fileId); FileMetadata meta = fileMetadataMap.get(fileId);
if (meta != null) { if (meta != null) {
try { try {
File uploadTmpFile = new File(tempFileDir, meta.getName() + "." + meta.getType()); File uploadTmpFile = new File(LocalRepositoryDir.getBugTmpDir() + "/" + meta.getName() + "." + meta.getType());
byte[] fileByte = fileMetadataService.getFileByte(meta); byte[] fileByte = fileMetadataService.getFileByte(meta);
FileUtils.writeByteArrayToFile(uploadTmpFile, fileByte); FileUtils.writeByteArrayToFile(uploadTmpFile, fileByte);
uploadPlatformAttachments.add(new SyncAttachmentToPlatformRequest(platformBug.getPlatformBugKey(), uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType())); uploadPlatformAttachments.add(new SyncAttachmentToPlatformRequest(platformBug.getPlatformBugKey(), uploadTmpFile, SyncAttachmentType.UPLOAD.syncOperateType()));