猿问

Java Apache FTP 客户端 - 恢复损坏的上传

如果出现问题,我需要在我的 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?


米脂
浏览 163回答 1
1回答

江户川乱折腾

重新连接您的 FTP 会话(如果它也坏了);测试远程文件的大小,以确定有多少字节一直到远程磁盘(例如使用FTPClient.mlistFile或SIZE命令 - 请参阅如何获取 FTPFile 的信息);寻找“输入流”回到那个点(虽然InputStream不支持寻找,所以你必须使用不同的流实现 - 或者重新打开InputStream和skip到位置);打电话FTPClient.appendFile。
随时随地看视频慕课网APP

相关分类

Java
我要回答