如果出现问题,我需要在我的 FTP 客户端中实现恢复上传。ftp在下面的示例中是 Apache FTPClient。public boolean upload(InputStream localFile, String remoteName, boolean createNew) { if (StringUtils.isBlank(remoteName)) { log.warn("Error while uploading file: localFile or remoteName is null"); return false; } synchronized (this) { try { if (createNew) { return ftp.storeFile(remoteName, localFile); } else { return ftp.appendFile(remoteName, localFile); //todo is it right? } } catch (Exception ex) { log.error(ex.getMessage(), ex); return false; } }}因此,如果ftp.storeFile崩溃(例如,并非所有字节都已发送),我如何继续使用相同的文件上传InputStream?
1 回答
江户川乱折腾
TA贡献1851条经验 获得超5个赞
重新连接您的 FTP 会话(如果它也坏了);
测试远程文件的大小,以确定有多少字节一直到远程磁盘(例如使用
FTPClient.mlistFile
或SIZE
命令 - 请参阅如何获取 FTPFile 的信息);寻找“输入流”回到那个点(虽然
InputStream
不支持寻找,所以你必须使用不同的流实现 - 或者重新打开InputStream
和skip
到位置);打电话
FTPClient.appendFile
。
添加回答
举报
0/150
提交
取消