Documentation
¶
Index ¶
- Constants
- Variables
- func ComputeRemainTime(status *TaskStatus) float64
- func ComputeSpeed(size float64, elapsed time.Duration) string
- func ConfigDisableProxy()
- func ConfigEnableLogger(enable bool)
- func ConfigEnvironmentProxy()
- func ConfigSetProxy(proxyUrl string)
- func DefaultProcessLookup(status *TaskStatus)
- type FetchConfig
- type MonoGetTask
- type ParallelGetTask
- func NewDefaultParallelGetTask(url, filePath string, concurrent int) *ParallelGetTask
- func NewParallelGetTask(url, filePath, processFile string, shardRequestDelay time.Duration, ...) *ParallelGetTask
- func NewParallelGetTaskFromFile(file string) (*ParallelGetTask, error)
- func NewSimpleParallelGetTask(url, filePath string, concurrent int) *ParallelGetTask
- type TaskStatus
Constants ¶
const ( // ChecksumMd5 MD5摘要算法 ChecksumMd5 = "MD5" // ChecksumSha1 SHA1摘要算法 ChecksumSha1 = "SHA1" // ChecksumSha256 SHA256摘要算法 ChecksumSha256 = "SHA256" )
摘要算法名称常量
Variables ¶
var GlobalConfig = &FetchConfig{ Retry: 5, UserAgent: "GopherFetch/1.8.0", Headers: make(map[string]string), StatusNotifyDuration: 300 * time.Millisecond, }
GlobalConfig 全局下载配置对象
Functions ¶
func ComputeRemainTime ¶ added in v1.6.0
func ComputeRemainTime(status *TaskStatus) float64
ComputeRemainTime 根据当前速度,计算剩余下载时间
- status 当前时刻的下载状态对象
返回剩余时间,单位:毫秒,若下载速度为0,则返回-1
func ComputeSpeed ¶ added in v1.6.0
ComputeSpeed 计算网络速度
- size 一段时间内下载的数据大小,单位字节
- elapsed 下载 size 字节所经过的时间长度
返回计算得到的网速字符串形式,会自动换算单位
func ConfigEnableLogger ¶
func ConfigEnableLogger(enable bool)
ConfigEnableLogger 配置是否启用控制台日志输出
enable 若为true则打开控制台日志输出,否则关闭日志
func ConfigEnvironmentProxy ¶
func ConfigEnvironmentProxy()
ConfigEnvironmentProxy 配置从环境变量自动获取代理服务器配置
func ConfigSetProxy ¶
func ConfigSetProxy(proxyUrl string)
ConfigSetProxy 设定下载代理服务器
proxyUrl 代理服务器地址,例如:http://127.0.0.1:2345
func DefaultProcessLookup ¶ added in v1.5.0
func DefaultProcessLookup(status *TaskStatus)
DefaultProcessLookup 默认的进度观察者回调函数,能够在控制台输出实时进度
- status 当前时刻的下载状态对象
Types ¶
type FetchConfig ¶
type FetchConfig struct { // 每个分片的最大重试次数 Retry int // 请求头的UserAgent UserAgent string // 发送下载请求时,自定义的附加请求头 Headers map[string]string // 监听分片任务下载状态时,每次监听的间隔时间 StatusNotifyDuration time.Duration }
FetchConfig 全局下载配置
type MonoGetTask ¶ added in v1.7.0
type MonoGetTask struct {
// contains filtered or unexported fields
}
MonoGetTask 单线程下载任务对象
func NewDefaultMonoGetTask ¶ added in v1.7.0
func NewDefaultMonoGetTask(url, filePath string) *MonoGetTask
NewDefaultMonoGetTask 创建一个默认的单线程下载任务对象 设定进度保存文件为下载文件所在目录下
- url 下载地址
- filePath 下载文件的保存路径
func NewMonoGetTask ¶ added in v1.7.0
func NewMonoGetTask(url, filePath, processFile string) *MonoGetTask
NewMonoGetTask 构造函数,用于创建单线程下载任务对象
- url 下载地址
- filePath 下载文件的保存路径
- processFile 下载进度文件的保存位置,若传入空字符串""表示不记录为进度文件
func NewMonoGetTaskFromFile ¶ added in v1.7.0
func NewMonoGetTaskFromFile(file string) (*MonoGetTask, error)
NewMonoGetTaskFromFile 从进度文件恢复单线程下载任务
- file 进度文件位置
func NewSimpleMonoGetTask ¶ added in v1.7.0
func NewSimpleMonoGetTask(url, filePath string) *MonoGetTask
NewSimpleMonoGetTask 创建一个简单的单线程下载任务对象 不保存进度文件
- url 下载地址
- filePath 下载文件的保存路径
func (*MonoGetTask) CheckFile ¶ added in v1.7.0
CheckFile 检查文件摘要值,请在调用 Run 方法并下载完成后再调用该函数
- algorithm 摘要算法名称,支持: gopher_fetch.ChecksumMd5 gopher_fetch.ChecksumSha1 gopher_fetch.ChecksumSha256
- excepted 期望的摘要值,16进制字符串,不区分大小写
当下载的文件摘要值和excepted相同时,返回true
func (*MonoGetTask) SubscribeStatus ¶ added in v1.7.0
func (task *MonoGetTask) SubscribeStatus(lookup func(status *TaskStatus))
SubscribeStatus 订阅该下载任务的实时下载状态
- lookup 观察者回调函数,当下载状态发生变化时,例如下载进度增加、实际并发数变化等,该函数就会被调用,其参数: status 当前的下载状态对象
type ParallelGetTask ¶
type ParallelGetTask struct { // 其它配置性质属性 // 下载并发数 Concurrent int `json:"concurrent"` // 分片请求时间间隔,若设为0则开始下载时所有分片同时开始请求 ShardStartDelay time.Duration `json:"shardStartDelay"` // 存放全部分片任务的列表 ShardList []*shardTask `json:"shardList"` // contains filtered or unexported fields }
ParallelGetTask 多线程下载任务类
func NewDefaultParallelGetTask ¶
func NewDefaultParallelGetTask(url, filePath string, concurrent int) *ParallelGetTask
NewDefaultParallelGetTask 创建一个并发任务对象 设定进度文件保存至下载文件所在目录下
- url 下载地址
- filePath 下载文件的保存路径
- concurrent 多线程下载并发数
func NewParallelGetTask ¶
func NewParallelGetTask(url, filePath, processFile string, shardRequestDelay time.Duration, concurrent int) *ParallelGetTask
NewParallelGetTask 构造函数,用于创建一个全新的分片下载任务
- url 下载地址
- filePath 下载文件的保存路径
- processFile 下载进度文件的保存位置,若传入空字符串""表示不记录为进度文件
- shardRequestDelay 分片请求时间间隔,若设为0则开始下载时所有分片同时开始请求
- concurrent 多线程下载并发数
func NewParallelGetTaskFromFile ¶
func NewParallelGetTaskFromFile(file string) (*ParallelGetTask, error)
NewParallelGetTaskFromFile 从进度记录文件读取并恢复一个多线程下载任务对象
file 进度文件位置
func NewSimpleParallelGetTask ¶ added in v1.7.0
func NewSimpleParallelGetTask(url, filePath string, concurrent int) *ParallelGetTask
NewSimpleParallelGetTask 创建一个最简并发任务对象 不保存进度文件
- url 下载地址
- filePath 下载文件的保存路径
- concurrent 多线程下载并发数
func (*ParallelGetTask) CheckFile ¶ added in v1.4.0
CheckFile 检查文件摘要值,请在调用 Run 方法并下载完成后再调用该函数
- algorithm 摘要算法名称,支持: gopher_fetch.ChecksumMd5 gopher_fetch.ChecksumSha1 gopher_fetch.ChecksumSha256
- excepted 期望的摘要值,16进制字符串,不区分大小写
当下载的文件摘要值和excepted相同时,返回true
func (*ParallelGetTask) SubscribeStatus ¶ added in v1.5.0
func (task *ParallelGetTask) SubscribeStatus(lookup func(status *TaskStatus))
SubscribeStatus 订阅该下载任务的实时下载状态
- lookup 观察者回调函数,当下载状态发生变化时,例如下载进度增加、实际并发数变化等,该函数就会被调用,其参数: status 当前的下载状态对象