当前位置: 首页 > 知识库问答 >
问题:

使用ChannelSftp下载大文件时文件传输不完整

姬衡
2023-03-14

情景

我正在尝试用Apache VFS从SFTP服务器(Proftpd)下载一个大文件(>3 GB),编程使用Java。Apache VFS在内部使用来自JSCH的ChannelSftp。

环境

  • Ubuntu Linux服务器12.4
  • ProFPTD 1.3.4a
  • OpenSSH

问题

在大约2 GB的数据之后,会话关闭,并从ChannelsFTP抛出IOException。

解决方法

  • 使用OpenSSH SFTP服务器和Java客户端时,问题不会出现
  • 使用sftp客户端和Proftpd也可以工作

问题

知道吗?

共有1个答案

糜正业
2023-03-14

jsch.channelsftp无法处理ProFTPD的重新键控方法。此问题影响版本0.1.46。在版本0.1.38中,它应该被修复了,但似乎只适用于其他sftp服务器。

要解决这个问题,只需使用Proftpd指令

SFTPRekey none
 类似资料:
  • 问题内容: 我需要使用curl下载远程文件。 这是我的示例代码: 但是它不能处理大文件,因为它首先读取内存。 是否可以将文件直接流式传输到磁盘? 问题答案:

  • 我们有一个运行在Linux上的Weblogic服务器,有多个受管服务器。我所关心的托管服务器的最大堆大小为1024MB。该服务器上部署了多个应用程序。其中一个应用程序处理来自REST api的响应来下载250MB的文件。对于大于50 MB的文件,有时没有问题,但有时服务器会因OOM错误而崩溃。以下是我的代码: 由于存在内存问题,我尝试采用InpuStream方法。以下是更改后的代码: 此代码没有进

  • 我有一个文件表示为块的列表,目标是下载所有块,加入并保存为一个文件。 它应该适用于大文件 应该是跨浏览器解决方案 null null null null 但我仍然无法实现我的目标与涵盖的需求… 如果有人有经验,最好的解决方案,我恳请分享它在这里。谢谢

  • 问题内容: 我正在使用php下载文件,而不是在新窗口中打开文件本身。对于较小的文件似乎可以正常工作,但对于较大的文件则无法工作(我需要在大型文件上使用)。这是我必须下载文件的代码: 但是,当我尝试下载大文件(例如265mb)时,浏览器告诉我找不到文件吗?文件一定在服务器上,脚本对于较小的文件也可以正常工作。有什么方法可以下载类似于我已有的大文件? 问题答案: PHP对脚本可以运行多长时间以及可以使

  • 问题内容: 我有一个200MB的文件,想通过下载提供给用户。但是,由于我们希望用户仅下载一次此文件,因此我们这样做: 强制下载。但是,这意味着整个文件必须加载到内存中,这通常不起作用。我们如何以每块kb的速度将文件流式传输给他们? 问题答案: 尝试这样的事情

  • 但是,当我第一次调用此路由时,即使指定了fileName参数,文件input1.txt也会被传输。请帮忙。