Make downloader plugin configurable
This commit is contained in:
parent
36081df049
commit
7282d43fae
@ -13,9 +13,14 @@ type Downloader struct {
|
||||
}
|
||||
|
||||
type DownloaderConfig struct {
|
||||
src string
|
||||
dest string
|
||||
headers http.Header
|
||||
Src string
|
||||
Dest string
|
||||
Headers http.Header
|
||||
}
|
||||
|
||||
// Config implements Configurable
|
||||
func (d *Downloader) Config() (interface{}, error) {
|
||||
return &d.config, nil
|
||||
}
|
||||
|
||||
func (d *Downloader) DownloadFunc() interface{} {
|
||||
@ -23,23 +28,23 @@ func (d *Downloader) DownloadFunc() interface{} {
|
||||
}
|
||||
|
||||
func (d *Downloader) Download() (err error) {
|
||||
err = getter.Get(d.config.dest, d.config.src, getter.WithGetters(
|
||||
httpGetter := &getter.HttpGetter{
|
||||
Netrc: false,
|
||||
HeadFirstTimeout: 10 * time.Second,
|
||||
Header: d.config.Headers,
|
||||
ReadTimeout: 30 * time.Second,
|
||||
MaxBytes: 500000000, // 500 MB
|
||||
}
|
||||
err = getter.Get(d.config.Dest, d.config.Src, getter.WithGetters(
|
||||
map[string]getter.Getter{
|
||||
"http": &getter.HttpGetter{
|
||||
Netrc: false,
|
||||
HeadFirstTimeout: 10 * time.Second,
|
||||
Header: d.config.headers,
|
||||
ReadTimeout: 30 * time.Second,
|
||||
MaxBytes: 500000000, // 500 MB
|
||||
},
|
||||
"file": &getter.FileGetter{
|
||||
Copy: true,
|
||||
},
|
||||
"https": httpGetter,
|
||||
"http": httpGetter,
|
||||
},
|
||||
))
|
||||
return
|
||||
}
|
||||
|
||||
var (
|
||||
_ component.Downloader = (*Downloader)(nil)
|
||||
_ component.Downloader = (*Downloader)(nil)
|
||||
_ component.Configurable = (*Downloader)(nil)
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user