You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ftplib查询FTP服务器的剩余可用存储空间?

FTP服务器剩余存储空间查询实现方案

有成熟的实现方案,核心分为两种思路,可根据你对接的FTP服务器支持的命令选择:

方案1:使用SITE DF扩展命令(优先选择)

绝大多数主流FTP服务器(包括vsftpd、ProFTPD、FileZilla Server等)都支持该扩展命令,可直接返回服务器挂载目录的磁盘空间信息,无需遍历文件。
以下是Python基于ftplib的实现示例:

from ftplib import FTP

# 建立FTP连接
ftp = FTP(host="你的FTP服务器地址", user="账号", passwd="密码")

# 执行SITE DF命令查询空间
resp = ftp.sendcmd("SITE DF")
print("空间查询返回结果:", resp)

ftp.quit()

返回结果通常为类似格式:213 / 104857600 41943040 62914560,其中最后一个数值即为剩余可用空间的字节数,不同服务器返回字段顺序可能有差异,可根据实际返回内容做字段解析即可。

方案2:遍历目录累加文件大小(兼容不支持扩展命令的场景)

如果服务器禁用了SITE类扩展命令,返回502 Command not implemented报错,可以用你已掌握的size方法累加所有已上传文件的大小,再结合你账号的磁盘配额计算剩余空间:

  • 用nlst递归获取FTP目录下所有文件的完整路径
  • 循环调用size方法累加所有文件的总大小,得到已用空间
  • 剩余空间 = 账号总磁盘配额 - 已用空间

注意:该方案仅适用于你独占FTP目录、且已知账号固定配额的场景,如果是多用户共享的FTP空间,该方式无法统计到其他用户占用的空间,计算结果会有偏差。

可上传数量估算建议

估算时建议预留10%~20%的冗余空间,避免文件头占用、磁盘块对齐等因素导致的空间计算误差:
可上传数量 = 剩余可用空间 / (单文件平均大小 * 1.2)
向下取整得到的结果会更稳妥。

内容的提问来源于stack exchange,提问作者Debjyoti Banerjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:09:03