LFTP将小文件下载为空

时间:2019-03-08 22:07:31

标签: command lftp

我有权访问SFTP服务器。它具有以下文件:

> rels
-rw-r--r-- 1 container container 954368 Mar 08 21:31 file1
-rw-r--r-- 1 container container 868352 Mar 08 21:31 file2
-rw-r--r-- 1 container container 8192 Mar 08 21:30 file3
-rw-r--r-- 1 container container 8192 Mar 08 21:30 file4

当尝试使用lftpget file1通过get file2下载文件时,文件确实会下载内容,其中lftp打印传输的字节数。使用get file3get file4会导致下载空文件,而lftp处于静默状态。

$ ls -l
-rw-rw-r-- 1 user user  954368 Mar  8 21:31 file1
-rw-rw-r-- 1 user user  868352 Mar  8 21:31 file2
-rw-rw-r-- 1 user user       0 Mar  8 21:30 file3
-rw-rw-r-- 1 user user       0 Mar  8 21:30 file4

sftp使用get file3命令成功下载了文件及其内容。

调试lftp的输出:

> get file3
---- path on wire is `/file3'
---> sending a packet, length=53, type=3(OPEN), id=12
<--- got a packet, length=10, type=102(HANDLE), id=12
---- got file handle 02 (1)
---> sending a packet, length=10, type=8(FSTAT), id=13
<--- got a packet, length=37, type=105(ATTRS), id=13
---- file info: size=8192, date=Fri Mar  8 21:30:53 2019
---> sending a packet, length=22, type=5(READ), id=14
---> sending a packet, length=22, type=5(READ), id=15
<--- got a packet, length=17, type=101(STATUS), id=15
---- status code=1(EOF), message=
---- eof
---> sending a packet, length=10, type=4(CLOSE), id=16
<--- got a packet, length=8201, type=103(DATA), id=14
<--- got a packet, length=17, type=101(STATUS), id=16
---- status code=0(OK), message=

如您所见,它确实接收到一个数据量足够大的数据包(id = 14),但是(可能是由于在接收DATA之前已接收到EOF状态数据包),未写入接收到的数据。

我在任何地方都找不到真正的原因-为什么lftp不下载小文件的内容?如何使它下载小文件?

使用LFTP版本4.8.1-根据changelog,在新版本中没有解决我提到的问题。

0 个答案:

没有答案