当多个客户端同时上传到 FTP 服务器时,我想限制服务器磁盘碎片。
有没有办法告诉 FTP 服务器为传入文件的大块预先分配磁盘空间,并以大块的形式不断增加?
或者,有没有办法告诉 FTP 服务器预先分配整个文件的价值,并以更连续的模式写出传入的 FTP 数据包。
传输后对文件进行碎片整理是不可接受的:这将花费太长时间。
我正在使用 IIS 6.0,但其他 FTP 服务器产品也是一种不错的替代品。
答案1
FTP 协议在 STOR 命令中不包含大小信息:
http://www.ietf.org/rfc/rfc959.txt
所以我怀疑你能否找到任何可以做到这一点的纯 FTP 客户端。你可能会发现一些供应商已经实现了专有扩展,但这需要客户端和服务器都支持它们。你说的是“客户端”,所以如果这包括内部和外部客户端,你可能会遇到强迫他们使用不同软件的问题。
快速浏览一下 SFTP 草稿并没有发现写入文件消息包含文件大小。
SCP 协议确实在其文件复制命令中包含一个大小参数,并且有支持 SCP(而不是 SFTP)的 Windows GUI 客户端,但您必须使用大小参数检查服务器是否预分配。从好的方面来看,代码是可用的,因此您可以构建自己的预分配的 Windows SSH/SCP 守护程序。但对于您描述的问题来说,这有点过头了。