我正在开发一个FTP服务器,在STOR发生之前我需要文件大小,我已经看到有一个名为ALLO的命令,我想知道是否有办法强制客户端发出命令,因为客户端当然知道文件大小。
干杯。
答案 0 :(得分:2)
只是一个猜测 - 您可以为STOR返回552 - Exceeded storage allocation (for current directory or
dataset).
。
答案 1 :(得分:2)
我认为@Rob Adams正朝着正确的方向前进,但我不同意发送552
,表示你正在中止转移;我认为持有请求直到他们发送ALLO
是一种更有用的方法。阅读RFC 959:
This (ALLO) command may be required by some servers to reserve
sufficient storage to accommodate the new file to be
transferred...
第4.2节列出了有效的回复格式,您可以在第一行显示错误,并详细说明第二行ALLO
的要求。
此外,第4.2.2节列出了此消息...... 350 Requested file action pending further information.
如果您的服务器在收到ALLO
之前收到存储请求似乎是合理的,它应该抛出350
并保持转移,直到您获得会话超时,关闭或他们发送ALLO
。