add multi user download option for download command

This commit is contained in:
tickstep 2024-08-10 08:16:02 +08:00
parent f56d103849
commit 630866798b

View File

@ -49,7 +49,7 @@ type (
ShowProgress bool ShowProgress bool
DriveId string DriveId string
ExcludeNames []string // 排除的文件名,包括文件夹和文件。即这些文件/文件夹不进行下载,支持正则表达式 ExcludeNames []string // 排除的文件名,包括文件夹和文件。即这些文件/文件夹不进行下载,支持正则表达式
IsMultiUserDownload bool // 是否启用多用户合下载 IsMultiUserDownload bool // 是否启用多用户合下载
} }
// LocateDownloadOption 获取下载链接可选参数 // LocateDownloadOption 获取下载链接可选参数
@ -214,7 +214,7 @@ func CmdDownload() cli.Command {
}, },
cli.BoolFlag{ cli.BoolFlag{
Name: "md", Name: "md",
Usage: "(BETA) Multi-user Download使用多用户混合下载可以叠加所有登录用户的下载速度", Usage: "(BETA) Multi-User Download使用多用户联合下载可以对单一文件叠加所有登录用户的下载速度",
}, },
}, },
} }
@ -341,14 +341,14 @@ func RunDownload(paths []string, options *DownloadOptions) {
} }
if subPanClientList == nil || len(subPanClientList) == 0 { if subPanClientList == nil || len(subPanClientList) == 0 {
fmt.Printf("\n当前登录用户只有一个无法启用多用户合下载\n") fmt.Printf("\n当前登录用户只有一个无法启用多用户合下载\n")
subPanClientList = nil subPanClientList = nil
} }
} }
if subPanClientList != nil || len(subPanClientList) > 0 { if subPanClientList != nil || len(subPanClientList) > 0 {
// 已启用多用户下载 // 已启用多用户下载
userCount := len(subPanClientList) + 1 userCount := len(subPanClientList) + 1
fmt.Printf("\n*** 已启用多用户合下载,用户数: %d ***\n", userCount) fmt.Printf("\n*** 已启用多用户合下载,用户数: %d ***\n", userCount)
// 多用户下载并发数必须为1以获得最大下载速度 // 多用户下载并发数必须为1以获得最大下载速度
options.Parallel = 1 options.Parallel = 1
// 阿里OpenAPI规定文件分片下载的并发数为3即某用户使用 App 时,可以同时下载 1 个文件的 3 个分片,或者同时下载 3 个文件的各 1 个分片。 // 阿里OpenAPI规定文件分片下载的并发数为3即某用户使用 App 时,可以同时下载 1 个文件的 3 个分片,或者同时下载 3 个文件的各 1 个分片。