更新文件上传逻辑

master
土豆兄弟 4 years ago
parent 6bd3e51abd
commit ea5f31acdb

@ -86,11 +86,11 @@
<artifactId>oshi-core</artifactId>
<version>5.0.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-parent</artifactId>
<version>23.0</version>
</dependency>
<!--<dependency>-->
<!--<groupId>com.google.guava</groupId>-->
<!--<artifactId>guava-parent</artifactId>-->
<!--<version>23.0</version>-->
<!--</dependency>-->
</dependencies>
<!-- 打包 -->

@ -133,7 +133,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 所有类型的接口都放行
.antMatchers(anonymousUrls.get(RequestMethodEnum.ALL.getType()).toArray(new String[0])).permitAll()
// 所有请求都需要认证
.anyRequest().authenticated()
// .anyRequest().authenticated()
.and().apply(securityConfigurerAdapter());
}

@ -1,11 +1,21 @@
package me.zhengjie.modules.upload.consts;
import org.springframework.beans.factory.annotation.Value;
/**
*
*/
public class SysConst {
// Test相关的 - start
// 远程服务器的相关配置
// public static final String LOCAL_HOST = "localhost";
//
// public static final String LOCAL_DIR = "C:\\Users\\Administrator\\Desktop\\trans\\";
// Test相关的 - end
public static final String REMOTE_TRANS_HOST = "47.110.11.213";
public static final Integer REMOTE_TRANS_PORT = 22;
@ -14,11 +24,27 @@ public class SysConst {
public static final String REMOTE_TRANS_SSH_PW = "yuyou@ECS2020";
public static final String REMOTE_TRANS_DIR_PATH = "/home";
/**
* SFTP
*/
public static final String REMOTE_TRANS_DIR_PATH = "/home/";
// fixme 以后改成rpc调用的地址
public static final String REMOTE_UPDATE_ADDR = "http://116.62.197.152:8000/api/";
public static final String REMOTE_UPDATE_ADDR = "http://116.62.197.152:8000/api/remoteRecord/remote/rec";
// 测试内容临时定义
public static final String TEST_USER_NAME = "测试用户";
// 系统开发,上线环境下进行关闭 - DEBUG开关 - 默认是打开的
public static Boolean sysDebug = true;
/**
* 使Set
*
* @param debug debug
*/
@Value(value = "${sys.debug}")
public static void setUrl(Boolean debug) {
SysConst.sysDebug = debug;
}
}

@ -1,10 +1,18 @@
package me.zhengjie.modules.upload.consts;
import java.util.Collections;
import java.util.List;
/**
*
*/
public class UploadFileConst {
/**
* -
*/
public static final List<String> WHITE_LIST = Collections.singletonList("admin");
/**
* ext -
*/

@ -15,14 +15,14 @@
*/
package me.zhengjie.modules.upload.domain;
import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.sql.Timestamp;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @website https://el-admin.vip
@ -45,9 +45,16 @@ public class UploadFile implements Serializable {
@ApiModelProperty(value = "上传日期")
private Timestamp uploadTime;
/**
* ps,
*/
@Column(name = "upload_file_task_name")
@ApiModelProperty(value = "上传任务名称")
private String uploadFileTaskName;
@Column(name = "operation")
@ApiModelProperty(value = "操作人")
private String opration;
private String operation;
@Column(name = "file_count")
@ApiModelProperty(value = "文件解析总数")
@ -61,7 +68,7 @@ public class UploadFile implements Serializable {
@ApiModelProperty(value = "上传状态")
private Integer uploadTag;
@Column(name = "lcoal_save_path")
@Column(name = "local_save_path")
@ApiModelProperty(value = "文件上传保存路径")
private String localSavePath;

@ -15,6 +15,10 @@
*/
package me.zhengjie.modules.upload.rest;
import cn.hutool.core.collection.CollectionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.zhengjie.annotation.AnonymousAccess;
import me.zhengjie.annotation.Log;
@ -25,20 +29,22 @@ import me.zhengjie.modules.upload.service.UploadFileService;
import me.zhengjie.modules.upload.service.dto.UploadFileDto;
import me.zhengjie.modules.upload.service.dto.UploadFileQueryCriteria;
import me.zhengjie.modules.upload.task.SaveToFileTask;
import me.zhengjie.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Objects;
import javax.servlet.http.HttpServletResponse;
import static me.zhengjie.modules.upload.consts.UploadFileConst.FILE_PATH_SPLIT;
/**
* @website https://el-admin.vip
@ -106,13 +112,30 @@ public class UploadFileController {
@ApiOperation("上传并加密任务")
@PostMapping(value = "/sendTask")
@AnonymousAccess // fixme 需要测试完成后进行去除和使用上面的权限注解
public ResponseEntity<Object> sendTask(@RequestParam(value = "files") MultipartFile[] files) {
public ResponseEntity<Object> sendTask(@RequestParam(value = "files", required = false) MultipartFile[] files, @RequestParam(value = "taskName") String taskName ) {
// 任务名称检验,为必填参数,且不能重复
if (StringUtils.isNotBlank(taskName)){
// modify by x bug fix on POSTMAN request
if (StringUtils.contains(taskName, FILE_PATH_SPLIT)){
taskName = taskName.substring(0, taskName.length()-1);
}
UploadFileQueryCriteria criteria = new UploadFileQueryCriteria();
criteria.setUploadFileTaskName(taskName);
List<UploadFileDto> uploadFileDtos = uploadFileService.queryAll(criteria);
if (CollectionUtil.isNotEmpty(uploadFileDtos)){
return new ResponseEntity<>(CommonResponse.createByError(ResponseCode.TASK_NAME_IS_EXIST), HttpStatus.OK);
}
}else {
return new ResponseEntity<>(CommonResponse.createByError(ResponseCode.EMPTY_ARGUMENT), HttpStatus.OK);
}
// 校验上传是否有文件
if (files!= null && files.length<= 0){
return new ResponseEntity<>(CommonResponse.createByError(ResponseCode.NO_FILE_INPUT), HttpStatus.OK);
}
// 生成本地文件
UploadFileDto uploadFileDto = uploadFileService.encryptDataAndSaveToFile(files);
UploadFileDto uploadFileDto = uploadFileService.encryptDataAndSaveToFile(files, taskName);
// 如果临时生成失败就修改状态为失败
if (Objects.isNull(uploadFileDto)){

@ -21,10 +21,10 @@ import me.zhengjie.modules.upload.service.dto.UploadFileQueryCriteria;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;
import java.util.Map;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/**
* @website https://el-admin.vip
@ -88,5 +88,5 @@ public interface UploadFileService {
*
* @param files
*/
UploadFileDto encryptDataAndSaveToFile(MultipartFile[] files);
UploadFileDto encryptDataAndSaveToFile(MultipartFile[] files, String taskName);
}

@ -15,12 +15,10 @@
*/
package me.zhengjie.modules.upload.service.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import java.sql.Timestamp;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @website https://el-admin.vip
@ -51,4 +49,7 @@ public class UploadFileDto implements Serializable {
/** 上传保存路径 */
private String localSavePath;
/** 上传的文件名称 **/
private String uploadFileTaskName;
}

@ -16,9 +16,10 @@
package me.zhengjie.modules.upload.service.dto;
import lombok.Data;
import me.zhengjie.annotation.Query;
import java.sql.Timestamp;
import java.util.List;
import me.zhengjie.annotation.Query;
/**
* @website https://el-admin.vip
@ -32,14 +33,17 @@ public class UploadFileQueryCriteria{
@Query
private Long id;
/** 模糊 */
@Query(type = Query.Type.INNER_LIKE)
private String opration;
/** 精确 */
private String operation;
/** 精确 */
@Query
private Integer uploadTag;
/** 精确 */
@Query
private String uploadFileTaskName;
/** BETWEEN */
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> uploadTime;

@ -15,36 +15,34 @@
*/
package me.zhengjie.modules.upload.service.impl;
import java.io.File;
import java.nio.file.Paths;
import java.sql.Timestamp;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.system.OsInfo;
import cn.hutool.system.SystemUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.zhengjie.modules.upload.consts.SysConst;
import me.zhengjie.modules.upload.domain.UploadFile;
import me.zhengjie.modules.upload.task.SaveToFileTask;
import me.zhengjie.utils.*;
import lombok.RequiredArgsConstructor;
import me.zhengjie.modules.upload.repository.UploadFileRepository;
import me.zhengjie.modules.upload.service.UploadFileService;
import me.zhengjie.modules.upload.service.dto.UploadFileDto;
import me.zhengjie.modules.upload.service.dto.UploadFileQueryCriteria;
import me.zhengjie.modules.upload.service.mapstruct.UploadFileMapper;
import org.springframework.beans.factory.annotation.Autowired;
import me.zhengjie.utils.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import static me.zhengjie.modules.upload.consts.SysConst.TEST_USER_NAME;
import static me.zhengjie.modules.upload.consts.UploadFileConst.*;
@ -92,10 +90,29 @@ public class UploadFileServiceImpl implements UploadFileService {
@Override
public Map<String, Object> queryAll(UploadFileQueryCriteria criteria, Pageable pageable) {
Page<UploadFile> page = uploadFileRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
criteria = filterOfWriteList(criteria);
UploadFileQueryCriteria finalCriteria = criteria;
Page<UploadFile> page = uploadFileRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, finalCriteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(uploadFileMapper::toDto));
}
/**
* ,,
*
* @param criteria
*
* @return
*/
private UploadFileQueryCriteria filterOfWriteList(UploadFileQueryCriteria criteria) {
if (!SysConst.sysDebug){
if (!CollectionUtil.contains(WHITE_LIST, SecurityUtils.getCurrentUsername())){
criteria.setOperation(SecurityUtils.getCurrentUsername());
}
}
return criteria;
}
@Override
public List<UploadFileDto> queryAll(UploadFileQueryCriteria criteria) {
return uploadFileMapper.toDto(uploadFileRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
@ -147,10 +164,10 @@ public class UploadFileServiceImpl implements UploadFileService {
}
@Override
public UploadFileDto encryptDataAndSaveToFile(MultipartFile[] files) {
public UploadFileDto encryptDataAndSaveToFile(MultipartFile[] files, String taskName) {
// 1. 文件存储到本地
long count = 0; // 统计总数
String baseStr = RandomUtil.randomString(11) + File.separator; // 生成通用随机文件夹存放每次的文件
String baseStr = ""; // 生成通用随机文件夹存放每次的文件
StringBuilder pathBuilder = new StringBuilder();
for (MultipartFile file : files) {
@ -161,13 +178,14 @@ public class UploadFileServiceImpl implements UploadFileService {
}
String extName = FileUtil.extName(originalFilename);
baseStr += baseStr + FileUtil.mainName(originalFilename);
baseStr += FileUtil.mainName(originalFilename);
String eachFilePath = buildFileWritePath(baseStr, extName);
try {
// 把文件保存到本地路径
file.transferTo(Paths.get(eachFilePath));
baseStr = "";
} catch (IOException e) {
log.error("============== [transferTo file fail, path is {} ] ==============", eachFilePath);
log.error("============== [transferTo file fail, path is {} ] ==============", eachFilePath,e);
}
// 统计行数
List<String> tempList = FileUtil.readLines(eachFilePath, "UTF-8");
@ -182,12 +200,16 @@ public class UploadFileServiceImpl implements UploadFileService {
// 2. 更新上传记录为正在上传,解析了有多少条
UploadFile uploadFile = new UploadFile();
uploadFile.setUploadFileTaskName(taskName);
uploadFile.setUploadTime(new Timestamp(new Date().getTime()));
String currentUsername = SecurityUtils.getCurrentUsername();
if (StringUtils.isBlank(currentUsername)){
uploadFile.setOpration(TEST_USER_NAME);//fixme 这边补充一下需要的操作人
String currentUsername;
if (SysConst.sysDebug){
uploadFile.setOperation(TEST_USER_NAME);//fixme 这边测试环境补充一下需要的操作人
}else {
currentUsername = SecurityUtils.getCurrentUsername();
uploadFile.setOperation(currentUsername);
}
uploadFile.setOpration(currentUsername);//fixme 这边补充一下需要的操作人
uploadFile.setFileCount(count);
uploadFile.setFileTransSuccessCount(0L);
uploadFile.setUploadTag(DOING_TAG);
@ -211,19 +233,26 @@ public class UploadFileServiceImpl implements UploadFileService {
// 定义的时间格式
String timeFormate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String dirPath;
// 生成一个随机文件夹目录,方便整理和打包
String filePath = RandomUtil.randomString(6) + FILE_NAME_SPLIT + baseStr + FILE_SPLIT + extName;
if (osInfo.isWindows()) {
FileUtil.mkdir(remoteLinkFileBasePathWindows + baseStr);
dirPath = remoteLinkFileBasePathWindows + timeFormate + File.separator;
FileUtil.mkdir(new File(dirPath));
// 构建存储文件
return remoteLinkFileBasePathWindows + File.separator + timeFormate + File.separator + RandomUtil.randomString(6) +FILE_NAME_SPLIT + baseStr + FILE_SPLIT + extName;
return dirPath + filePath;
} else if (osInfo.isLinux()) {
FileUtil.mkdir(remoteLinkFileBasePathLinux + baseStr);
dirPath = remoteLinkFileBasePathLinux + timeFormate + File.separator;
FileUtil.mkdir(new File(dirPath));
// 构建存储文件
return remoteLinkFileBasePathLinux + File.separator + timeFormate + File.separator + RandomUtil.randomString(6) + FILE_NAME_SPLIT + baseStr + FILE_SPLIT + extName;
return dirPath + filePath;
} else if (osInfo.isMac()) {
FileUtil.mkdir(remoteLinkFileBasePathMac + baseStr);
dirPath = remoteLinkFileBasePathMac + timeFormate + File.separator;
FileUtil.mkdir(new File(dirPath));
// 构建存储文件
return remoteLinkFileBasePathMac + File.separator + timeFormate + File.separator + RandomUtil.randomString(6) + FILE_NAME_SPLIT + baseStr + FILE_SPLIT + extName;
return dirPath + filePath;
} else {
return "";
}

@ -14,7 +14,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.collect.Lists;
import com.jcraft.jsch.Session;
import com.mchange.v2.beans.BeansUtils;
import lombok.extern.slf4j.Slf4j;
import me.zhengjie.modules.upload.domain.UploadFile;
import me.zhengjie.modules.upload.service.UploadFileService;
@ -33,7 +32,6 @@ import org.springframework.context.annotation.Scope;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.beans.Beans;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
@ -217,6 +215,7 @@ public class SaveToFileTask {
} else {
count++;
try {
// 重新发送前休眠3秒
Thread.sleep(3_0000);
} catch (InterruptedException e) {
log.error("SaveToFileTask|batchSendToEncrypt sleep ERROR. message is", e.getMessage(), e);
@ -291,16 +290,25 @@ public class SaveToFileTask {
/**
* HTTPPost
*
* @param path
* @param path
*
* @return
*/
private boolean sendUpdatePostReq(String path, UploadFileDto uploadFileDto) {
// 构建发送参数
SendRemoteUpdateJsonContent sendRemoteUpdateJsonContent = new SendRemoteUpdateJsonContent();
BeanUtil.copyProperties(uploadFileDto, sendRemoteUpdateJsonContent);
String fileFullName = FileUtil.getName(path);
if (StringUtils.isNotBlank(fileFullName)){
sendRemoteUpdateJsonContent.setSftpFilePath(REMOTE_TRANS_DIR_PATH + fileFullName);
}
sendRemoteUpdateJsonContent.setFileTransSuccessCount(uploadFileDto.getFileCount());
sendRemoteUpdateJsonContent.setUploadRemoteTaskName(uploadFileDto.getUploadFileTaskName());
// 转成Json字符串
String readySendJson = JSON.toJSONString(sendRemoteUpdateJsonContent);
log.info("====== [SaveToFileTask|sendUpdatePostReq , readySendJson is {} ] ======", readySendJson);
// 发送请求
HttpResponse httpResponse = HttpRequest
.post(REMOTE_UPDATE_ADDR)
@ -312,6 +320,8 @@ public class SaveToFileTask {
if (httpResponse.isOk() && httpResponse.body().contains("SUCCESS")){
log.info("====== [success send upload record request! ]======");
return Boolean.TRUE;
}else {
log.error("====== [ SaveToFileTask|sendUpdatePostReq , send upload record request Fail! ]======");
}
return Boolean.FALSE;

@ -1,13 +1,10 @@
package me.zhengjie.modules.upload.task.model;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import java.io.Serializable;
import java.sql.Timestamp;
@ -17,7 +14,7 @@ import java.sql.Timestamp;
public class SendRemoteUpdateJsonContent implements Serializable {
/**
* -
* -
*/
@JSONField(name = "uploadTime")
private Timestamp uploadTime;
@ -31,7 +28,7 @@ public class SendRemoteUpdateJsonContent implements Serializable {
/**
*
*/
@JSONField(name = "file_trans_success_count")
@JSONField(name = "fileTransSuccessCount")
private Long fileTransSuccessCount;
/**
@ -45,4 +42,18 @@ public class SendRemoteUpdateJsonContent implements Serializable {
*/
@JSONField(name = "localSavePath")
private String localSavePath;
/**
* sftp
*/
@JSONField(name = "sftpFilePath")
private String sftpFilePath;
/**
* ,
*/
@JSONField(name = "uploadRemoteTaskName")
private String uploadRemoteTaskName;
}

@ -118,4 +118,7 @@ save:
corePoolSize: 2
maxPoolSize: 16
queueCapacity: 3
ThreadNamePrefix: SaveToFileTaskExecutor-
ThreadNamePrefix: SaveToFileTaskExecutor-
# 切换系统环境相关的配置
sys:
debug: true

@ -120,3 +120,14 @@ file:
# 文件大小 /M
maxSize: 100
avatarMaxSize: 5
# 线程池配置
save:
task:
thread_pool:
corePoolSize: 2
maxPoolSize: 16
queueCapacity: 3
ThreadNamePrefix: SaveToFileTaskExecutor-
# 切换系统环境相关的配置
sys:
debug: false

@ -0,0 +1,32 @@
package me.zhengjie;
import cn.hutool.core.util.RandomUtil;
import me.zhengjie.utils.FileUtil;
import org.junit.Test;
import java.io.File;
import java.util.HashSet;
import java.util.Set;
public class DemoTest {
/**
*
*/
@Test
public void testMakeDemoNumFile(){
String baseStr = "130";
String randBaseStr = "0123456789";
Set<String> numberStrsSet = new HashSet<>(20_00000);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 20_0000; j++) {
numberStrsSet.add(baseStr + RandomUtil.randomString(randBaseStr,8));
}
FileUtil.writeLines(numberStrsSet, new File("C:\\Users\\Administrator\\Desktop\\" + RandomUtil.randomString(4) + ".txt"),"UTF-8");
numberStrsSet = new HashSet<>(20_00000);
}
}
}

@ -1,10 +1,10 @@
package me.zhengjie;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.extra.ftp.Ftp;
import cn.hutool.extra.ftp.FtpConfig;
import cn.hutool.extra.ssh.JschUtil;
import cn.hutool.extra.ssh.Sftp;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.jcraft.jsch.Session;
import me.zhengjie.utils.DateUtil;
import me.zhengjie.utils.FileUtil;
@ -13,13 +13,10 @@ import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
public class SimpleTest {
@ -108,4 +105,27 @@ public class SimpleTest {
System.out.println(FileUtil.mainName(file));
}
@Test
public void testCreteFile() throws IOException {
String path = "C:\\Users\\Administrator\\Desktop\\aa\\bb\\";
// FileUtil.mkdir(new File(path));
//
// Files.createFile(Paths.get(path + "1.txt"));
FileUtil.file(new File("1.txt"),"aa", "bb");
}
@Test
public void testPOSTBug(){
Map<String, Object> map = new HashMap<>();
map.put("taskName","1");
HttpResponse httpResponse = HttpRequest
.post("localhost:8000/api/uploadFile/sendTask")
.form(map)
.execute();
}
}

@ -1,15 +1,21 @@
package me.zhengjie;
import me.zhengjie.modules.upload.service.dto.UploadFileDto;
import me.zhengjie.modules.upload.task.SaveToFileTask;
import me.zhengjie.utils.SecurityUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.sql.Timestamp;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SpringApplicationTest {
@Autowired
private SaveToFileTask saveToFileTask;
/**
*
@ -18,4 +24,27 @@ public class SpringApplicationTest {
public void testGetName(){
System.out.println(SecurityUtils.getCurrentUsername());
}
/**
* -
*/
@Test
public void testRemoteRec(){
String path = "C:\\Users\\Administrator\\Desktop\\c76l.txt";
UploadFileDto uploadFileDto = new UploadFileDto();
uploadFileDto.setUploadTime(new Timestamp(new java.util.Date().getTime()));
uploadFileDto.setOperation("测试用户1");
uploadFileDto.setFileCount(1000000L);
uploadFileDto.setFileTransSuccessCount(999999L);
uploadFileDto.setUploadFileTaskName("测试任务1");
// System.out.println(saveToFileTask.sendUpdatePostReq(path, uploadFileDto));
}
@Test
public void testSFTPTrans(){
// saveToFileTask.transFileToOtherServer("C:\\Users\\Administrator\\Desktop\\c76l.txt");
}
}

Loading…
Cancel
Save