使用lftp上传到ftp站点得到501磁盘空间不足

时间:2016-03-18 18:07:10

标签: ftp lftp

我是使用ftp的新手,最近我遇到了这种非常有线的情况。

我试图将文件上传到其他人的ftp网站,我尝试使用此命令

lftp -e "set ftp:passive-mode true; put /dir/to/myfile -o dest_folder/`basename /dir/to/myfile`; bye" ftp://userName:passWord@ftp.site.com

但是我收到了错误

  

put:访问失败:501磁盘空间不足:只有0个字节可用。 (到dest_folder / myfile)

当我登录他们的网站并检查时,会上传一个带有myfile名称的0字节文件。

起初我认为ftp站点没有磁盘空间,但我尝试使用

登录该站点
lftp userName:passWord@ftp.site.com

然后设置被动模式

set ftp:passive-mode true

然后上传文件(使用其他名称)

put /dir/to/myfile_1 -o dest_folder/`basename /dir/to/myfile_1`

这次成功上传文件时没有501磁盘空间不足的错误。

有人知道为什么会这样吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用lftp -d来启用调试/详细模式。有些FTP客户端使用ALLO FTP命令告诉FTP服务器"分配"提前一些字节数;然后FTP服务器可以接受/拒绝它。我怀疑lftp正在向您的FTP服务器发送ALLO,并且FTP服务器使用501响应代码响应该ALLO命令,导致您的问题。

根据更新/评论,OP确认lftp使用ALLO确实导致最初报告的行为。由于lftp试图更新上传文件的时间戳,因此发生了后续错误;这些尝试也被FTP服务器拒绝。 lftp曾尝试使用MFMTSITE UTIME FTP命令。

要停用这些功能,并让lftp成功获得OP,需要进行以下lftp设置:

ftp:trust-feat no
ftp:use-allo no
ftp:use-feat no
ftp:use-site-utime no
ftp:use-site-utime2 no

使用这些设置,您应该能够事先使用lftp命令{strong}和 ALLO上传 文件没有尝试使用MFMTSITE UTIME修改上传文件的服务器端时间戳。

希望这有帮助!