快速上手指南
带你一文速通 SyncFile 之论文篇。
介绍
SyncFile 能够较为简单的在设备间克隆文件。是替代SMB协议的可选方案。
本方案适用于多个小文件的克隆,大文件克隆性能不佳。(取决于服务端侧使用的HTTP服务器解决方案)
技术特征
适用于互联网中的克隆,允许自定义DoH解析器、自定义IP、负载均衡等功能。 使用httpx
网络模块,比requests
性能更好。
实现原理
在被克隆(称为“服务端”)侧,根据用户确立的规则文件config.json
,生成索引文件client.json
,包含目标路径、文件路径、文件SHA512(前1MB摘要)。
服务端通过三方HTTP服务器提供服务,客户端根据配置文件Cconfig.json
,拉取服务端索引,并根据索引拉取文件。
安装
想要安装 syncfile ?您仅需要一个 Python 环境以及一个 pip。 推荐的Python POSIX环境
对于Windows,仅需要安装Python,并勾选“Add to PATH”以及“Pip”。
然后,您需要打开一个终端,可以是bash
、zsh
、powershell
等,亦或者cmd.exe
。 输入如下命令:
# 对于以推荐的方式安装的Python
pip install syncfile
# 对于Linux/Unix系统,使用系统Python3
python3 -m pip install syncfile
# 确保安装了Pip
python3 -m ensurepip
# 使用系统包管理器
# debian
sudo apt install python3-pip
# archlinux
sudo pacman -Sy python3-pip
# redhat
sudo yum install python3-pip
上手
syncfile常规使用非常简单,仅有两个功能。
服务端
解释:被“克隆”的机器。提供HTTP服务,故称为“服务端”
步骤:
- 准备好需要被“克隆”的资源文件(最好集中在同一目录,推荐目录结构如下所示)
/ # 项目目录
| - resources
| - someResource.txt
| - config.json
| - client.json # 自动生成
# 不建议有其他文件,该目录需要被整个开放到网络中,没有密码。
- 编写
config.json
文件,如下
// 本文件为示例,请根据实际需求修改
[
["resources", ["*"], "resources"]
]
- 在终端运行如下指令
python -m syncfile.server
- 运行一个HTTP服务器,将本目录暴露在网络中,例:
python -m http.server 8080
客户端
解释: “克隆”的机器,访问HTTP服务器,故称“客户端”
步骤:
- 在需要同步的目录,新建
Cconfig.json
文件,示例:
// 基本的配置文件,更多可选参数在文档中
{
"requestURL": "http://127.0.0.1:8080/"
}
- 打开终端,运行如下指令:
python -m syncfile.client
- 成功同步远端
resources
目录到本地同名目录!
卸载
对于任何系统,仅需使用pip包管理器移除,如:
<python> -m pip uninstall syncfile
其中<python>
是您的Python解释器路径。
更多
您可以访问Github获取更多信息、反馈Bugs、参与讨论等。
如果您想要寻找更多的官方中文参考文档,请查看参考文档