add sync command

This commit is contained in:
tickstep 2022-06-10 22:39:54 +08:00
parent 979b3d9bde
commit 232ab535ed

View File

@ -35,7 +35,7 @@ func CmdSync() cli.Command {
UsageText: cmder.App().Name + " sync", UsageText: cmder.App().Name + " sync",
Description: ` Description: `
备份功能指定本地目录和对应的一个网盘目录以备份文件 备份功能指定本地目录和对应的一个网盘目录以备份文件
备份功能支持下三种模式 备份功能支持下三种模式
1. upload 1. upload
备份本地文件即上传本地文件到网盘始终保持本地文件有一个完整的备份在网盘 备份本地文件即上传本地文件到网盘始终保持本地文件有一个完整的备份在网盘
2. download 2. download
@ -43,12 +43,51 @@ func CmdSync() cli.Command {
3. sync 3. sync
双向备份保持网盘文件和本地文件严格一致 双向备份保持网盘文件和本地文件严格一致
示例: 请输入以下命令查看如何配置和启动
1. 启动同步备份任务 aliyunpan sync start -h
aliyunpan-go sync start
`, `,
Category: "阿里云盘", Category: "阿里云盘",
Before: cmder.ReloadConfigFunc, Before: cmder.ReloadConfigFunc,
Action: func(c *cli.Context) error {
cli.ShowCommandHelp(c, c.Command.Name)
return nil
},
Subcommands: []cli.Command{
{
Name: "start",
Usage: "启动sync同步备份任务",
UsageText: cmder.App().Name + " sync start [arguments...]",
Description: `
使用备份配置文件启动sync同步备份任务备份配置文件必须存在不然启动失败
同步备份任务的配置文件保存在(配置目录)/sync_drive/sync_drive_config.json样例如下
{
"configVer": "1.0",
"syncTaskList": [
{
"name": "设计文档备份",
"localFolderPath": "D:\\tickstep\\Documents\\设计文档",
"panFolderPath": "/sync_drive/我的文档",
"mode": "upload"
}
]
}
相关字段说明如下
name - 任务名称
localFolderPath - 本地目录
panFolderPath - 网盘目录
mode - 模式: upload(备份本地文件到云盘),download(备份云盘文件到本地),sync(双向同步备份)
例子:
1. 查看帮助
aliyunpan sync start -h
2. 使用默认配置启动同步备份服务
aliyunpan sync start
3. 启动sync服务并配置下载并发为2上传并发为1上传分片大小为1MB
aliyunpan sync start -dp 2 -up 1 -ubs 1024
`,
Action: func(c *cli.Context) error { Action: func(c *cli.Context) error {
if config.Config.ActiveUser() == nil { if config.Config.ActiveUser() == nil {
fmt.Println("未登录账号") fmt.Println("未登录账号")
@ -80,7 +119,7 @@ func CmdSync() cli.Command {
uploadBlockSize = aliyunpan.DefaultChunkSize uploadBlockSize = aliyunpan.DefaultChunkSize
} }
RunSync(up, dp, uploadBlockSize, downloadBlockSize) RunSync(dp, up, downloadBlockSize, uploadBlockSize)
return nil return nil
}, },
Flags: []cli.Flag{ Flags: []cli.Flag{
@ -100,6 +139,8 @@ func CmdSync() cli.Command {
Value: 10240, Value: 10240,
}, },
}, },
},
},
} }
} }