VSFTP服务器使用retrieveFileStream返回null的问题

                                                     VSFTP服务器使用retrieveFileStream返回null的问题

 

最近在使用vsftp在文件存储服务,发现使用retrieveFileStream获取文件流的时候,怎么获取都是空的,网上有说返回inputStream后马上关闭流就可以了,但是这里流本身就是空的,关闭肯定报空指针异常,所以排除,有的说先调用ftpClient.getReply(),消掉226的返回,即可,ok,试了一下,可以,但是治标不治本,如果文件本身存在,一切正常,但是如果获取的文件本身不存在,则这里就会卡死,直到ftp连接关闭,很恶心,白高兴一场,后来试了一下,原来这个接口比较诡异,与其他接口相比,这个接口的参数,不能只是文件名,这个接口的参数,需要是相对于ftp服务器的根目录的绝对路径才行。

例子:

ftp服务器的跟目录:

/usr/local/eduboss/vsftpd

文件在linux上面的文件具体位置:

/usr/local/eduboss/vsftpd/uat-bucket-tmp/111111.jpg

则接口ftpClient.retrieveFileStream(/uat-bucket-tmp/111111.jpg)才可以获取到值,否则返回为null

 

VSFTP服务器使用retrieveFileStream返回null的问题

VSFTP服务器使用retrieveFileStream返回null的问题