【发布时间】:2016-06-26 14:23:23
【问题描述】:
我在一台可以访问远程文件服务器(Windows)的台式机上。登录时授予读/写访问权限,我不需要重新输入用户名和密码。
我想:
- 将几个非常大的文件从一个远程文件夹复制到另一个文件夹
- (目标文件夹可能包含传入文件的副本)
- 避免产生不必要的网络流量
- (包括不复制副本)
目前我对所有文件执行盲shutil.copy2()。这意味着不必要地复制重复项。系统管理员还报告说,这会产生不必要的网络流量,因为数据从 remote-folder-1 复制到 local-memory 到 remote-folder-2.
本机 Python 或 pywin32 中是否存在满足这些要求的现有命令?
丢弃的选项包括 CopyFileEx via pywin32(没有重复检查)和原生 Python byte-checking 或 checksumming(仍然读取文件并因此产生网络流量)。
回退包括记录校验和、stat-based comparison(无字节检查)和乐观(部分)校验和。
【问题讨论】:
-
是否可以为这种环境的双方创建一个包?就像 rsync 需要另一个软件才能有效一样,是否可以在两台机器上“安装”脚本并通过套接字进行协商?这将通过两个脚本在实际传输任何内容之前同步需要传输的文件来解决网络负载问题。如果没有,您可以使用
pywin32在远程机器上执行WMI命令并获取校验和。这至少解决了一半的问题。
标签: windows python-2.7 duplicates lan file-management