需求:最近一个需求变更,刚开始是将订单导出数据导出指定格式txt文件,后来变更为将订单文件直接推送到对方服务器。
思路:先将数据内容输出到服务器上,在将文件推送到三方服务器。推送完成记得删除暂存服务器上的文件
准备工作:
我们会由系统人员配置白名单,设置acl访问限制,拿到需要上传的服务器FTP的地址,端口号,FTP账号和密码,上传路径等,保证我们系统能够链接到对方服务器。
代码实现:
1.依赖:
SFTP和FTP的jar包不同 ,根据个人需求只要一个就可以了
<!--FTP包-->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.5</version>
</dependency>
<!--SFTP包-->
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
2.数据输出到本地服务器
public String writeToTxtSFTP(B2bOrderDetailVO orderDetail, List<B2bOrderGiftInfo> giftInfos) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
/*实例化日期用于生成文件名称*/
String fileName = simpleDateFormat.format(new Date());
/*在相应的路径下创建对应的文件夹*/
String filePath = FILE_PATH_PREFIX + fileName + FILE_PA