使用pysftp时如何获取远程文件夹的大小?
stat 返回的对象似乎不正确,我的代码:
fdStat = sftpClient.stat(remotePath);
print(fdStat.st_size);
输出:
drwxr-xr-x 1 0 99 4096 21 Sep 11:13 ?
4096
=> 文件夹remotePath
很大,比 4096 大得多。
该方法返回与 *nix命令.stat
相同的信息。ls
这里的大小代表数据的大小,即目录本身(=有关包含文件的元数据)在磁盘上占用的大小。这不是包含文件的大小。
通常,没有直接的方法可以使用 pysftp 或 SFTP 协议中的单个调用来获取目录中文件的总大小。
您所能做的就是列出目录(如果需要,递归)并汇总各个文件的大小。
我通过调用execute()来解决,然后为linux服务器处理返回值:
sftpClient.execute("du --apparent-size --block-size=1 " + remotePath)