github.com/qjfoidnh/BaiduPCS-Go@v0.0.0-20231011165705-caa18a3765f3/requester/downloader/config.go (about) 1 package downloader 2 3 import ( 4 "github.com/qjfoidnh/BaiduPCS-Go/requester/transfer" 5 ) 6 7 const ( 8 //CacheSize 默认的下载缓存 9 CacheSize = 8192 10 ParallelSize = 5 11 ) 12 13 var ( 14 // MinParallelSize 单个线程最小的数据量 15 MinParallelSize int64 = 256 * 1024 // 256kb 16 ) 17 18 //Config 下载配置 19 type Config struct { 20 Mode transfer.RangeGenMode // 下载Range分配模式 21 MaxParallel int // 最大下载并发量 22 CacheSize int // 下载缓冲 23 BlockSize int64 // 每个Range区块的大小, RangeGenMode 为 RangeGenMode2 时才有效 24 MaxRate int64 // 限制最大下载速度 25 InstanceStateStorageFormat InstanceStateStorageFormat // 断点续传储存类型 26 InstanceStatePath string // 断点续传信息路径 27 IsTest bool // 是否测试下载 28 TryHTTP bool // 是否尝试使用 http 连接 29 } 30 31 //NewConfig 返回默认配置 32 func NewConfig() *Config { 33 return &Config{ 34 MaxParallel: ParallelSize, 35 CacheSize: CacheSize, 36 IsTest: false, 37 } 38 } 39 40 //Fix 修复配置信息, 使其合法 41 func (cfg *Config) Fix() { 42 fixCacheSize(&cfg.CacheSize) 43 if cfg.MaxParallel < 1 { 44 cfg.MaxParallel = 1 45 } 46 } 47 48 //Copy 拷贝新的配置 49 func (cfg *Config) Copy() *Config { 50 newCfg := *cfg 51 return &newCfg 52 }