一个基于Python的局域网文件传输工具----Mercury
现在越来越多的本本开始减少甚至取消USB-A接口了,比如苹果的MacBook系列,以前习以为常的用U盘在临近的计算机之间传输文件也变得开始困难起来。比如从Mac传文件到PC(现在的Mac大部分只有USB-C接口);或者本本的USB接口太少,亦或者有的本本接口位置设置不合理导致难插U盘的情况。
还有一种情况,比如家里有好几台电脑,想传文件又懒得用U盘,比如我{:10_277:}
你可能会想到QQ开个小号传文件什么的,但是这会局限于外网的带宽限制,不能发挥局域网的速度优势{:10_277:}
这时,可以试试这个用Python写的局域网文件传输工具----Mercury~{:10_254:}
在我的测试中,传输一个4.2GB大小的文件,大约需要15min,在网络环境良好的环境下(比如全是有线连接),速度可以提升至10min左右
主要用到的技术点:
1、多线程文件传输/下载
2、大文件(>100M)分块传输
3、文件下载后进行MD5验证
4、对目录进行递归扫描打包后进行传输,提升速度
使用方法:
当本机作为服务器时:
mercury -t client -p path -i serverIP [-P port -T threadnum -b buffer -n blocksize]
当本机作为客户端时:
mercury -t server -p path [-P port -T threadnum -b buffer -n blocksize]
参数含义:
-t or --type 表示类型(必须) 值:server/client
-p or --path 表示文件路径(必须) 值:server端为文件路径 client端为目录
-i or --ip 表示服务器地址(客户端时必须) 值:默认本机127.0.0.1
-P or --port 表示程序要使用的端口号(可选) 值:默认9000
-T or --threadnum 表示客户端同时接收的线程数(可选) 值:默认为2
-b or --buffer 表示网络传输时的缓冲区大小(可选) 值:默认1M
-n or --blocksize 表示文件的分块大小(可选) 值:默认100M
截图:
https://xxx.ilovefishc.com/album/201906/10/000328oxie4x117tv84579.png
下载地址:
**** Hidden Message *****
源码:
**** Hidden Message *****
还希望喜欢的鱼油多多支持~~{:5_109:} 支持一下。。 {:10_297:}观摩观摩 666 支持 学习一下 thk for share 观摩观摩 {:5_102:} 6666 学习 学习嘻嘻
666 支持一下 111 怒赞 能看下吗 看卡 {:10_275:} 支持
页:
[1]
2