我对 com.jscape.inet.sftp.Sftp
类中使用的简历上传方法有疑问。
根据 API,在下面的方法中,第二个参数是 localFileOffset
。
resumeUpload(java.lang.String localFile, long localFileOffset)
localFileOffset
是如何计算的?我假设 localFileOffset
应该是继续上传的点,这基本上是已上传文件的文件大小(以字节为单位)。
如下所示:
Boolean isRemoteFileAvailable = sftp.isValidPath(uploadDir + "/" + RemoteFileName);
if (isRemoteFileAvailable)
{
remoteFileSize = sftp.getFilesize(rrFileName);
localFileOffset = remoteFileSize;
}
最佳答案
经过几次点击、尝试和几轮测试,这是我的结论。
下面的 API 是方法定义: resumeUpload(java.io.File localFile, long localFileOffset)
如果您使用 localFileOffset (本地文件大小 - 远程文件大小),您最终会丢失数据。
第二个参数绝对不是本地文件偏移量,而是远程文件大小(以字节为单位),计算方式为 sftp.getFilesize(remoteFile);
我通过多次停止和使用恢复上传来多次测试我的代码,并将原始文件与上传的文件进行比较。没有区别,最后一次恢复上传在几秒钟内完成,从而确认它是从完成的位置恢复而不是从头开始上传。
关于java - Jscape 简历上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990125/