FTP上传、下载单个大于2G文件限制的真相

FTP传输容量没有2G限制,2G限制是FS的问题。
你一次性传10个1G文件没事,但传1个超过2G的就不行了,关键问题是FS的问题。这是windows下的FS参考资料:
文件系统 文件大小限制
FAT12 最大支持8M
FAT16 最大支持2G
FAT32 不能大于4G
NTFS 单个文件最大64GB
NTFS5.0 单个文件最大2TB

不要让几年前的“常识”迷惑了你的思维

相关日志


技术研究 关键字(Tags): , , , , ,

如果你觉得这篇文章不错,你可以 给我留个回复订阅它。无论如何,谢谢你的支持!

评论

我觉得不是FS的问题。ftp传输的2GB限制是因为文件偏移指针的2GB边界限制的。如果一个FS连2G的文件都支持不起来,那这个文件系统就没有存在的意义了。未使用特殊编译flag编译的ftp服务器端或者客户端,无论在什么FS中都不支持大于2GB的文件。

晕死,如果因为fs不支持2gb的文件,那么大于2gb的文件根本就不会在os上存在,我们有怎么可能看到并拿工具去下载该文件呢?

作者是糊涂。
因为C语言写的ftp服务器,其文件长度,文件偏移都是用长整型变量,有符号长整型如果到了2G,就会变成负数。
我最近正好写一个多线程文件传输的系统,也遇到这个问题,改为unsigned long后,可以传4G以下的文件了。

发表评论

(必填)

(必填)