Documentation ¶
Overview ¶
Package net provides the core download functions
Package net provides net related functions
Index ¶
- Constants
- func DetectSizeWithRoundTripper(targetURL, output string, showProgress, noProxy, insecureSkipVerify bool, ...) (total int64, rangeSupport bool, err error)
- func DetectSizeWithRoundTripperAndAuth(targetURL, output string, showProgress, noProxy, insecureSkipVerify bool, ...) (total int64, rangeSupport bool, err error)
- func DownloadFileWithMultipleThreadKeepParts(targetURL, targetFilePath string, thread int, keepParts, showProgress bool) (err error)
- func GetCurrentLine() int
- func ParseSuggestedFilename(header http.Header, filepath string) (filename string)
- func SetProxy(proxy, proxyAuth string, tr *http.Transport) (err error)
- type ContinueDownloader
- func (c *ContinueDownloader) DownloadWithContinue(targetURL, output string, index, continueAt, end int64, showProgress bool) (err error)
- func (c *ContinueDownloader) GetSuggestedFilename() string
- func (c *ContinueDownloader) WithBasicAuth(username, password string) *ContinueDownloader
- func (c *ContinueDownloader) WithContext(ctx context.Context) *ContinueDownloader
- func (c *ContinueDownloader) WithInsecureSkipVerify(insecureSkipVerify bool) *ContinueDownloader
- func (c *ContinueDownloader) WithRoundTripper(roundTripper http.RoundTripper) *ContinueDownloader
- func (c *ContinueDownloader) WithTimeout(timeout time.Duration) *ContinueDownloader
- func (c *ContinueDownloader) WithoutProxy(noProxy bool) *ContinueDownloader
- type DownloadError
- type FakeReader
- type HTTPDownloader
- type MultiThreadDownloader
- func (d *MultiThreadDownloader) Download(targetURL, targetFilePath string, thread int) (err error)
- func (d *MultiThreadDownloader) GetSuggestedFilename() string
- func (d *MultiThreadDownloader) WithBasicAuth(username, password string) *MultiThreadDownloader
- func (d *MultiThreadDownloader) WithInsecureSkipVerify(insecureSkipVerify bool) *MultiThreadDownloader
- func (d *MultiThreadDownloader) WithKeepParts(keepParts bool) *MultiThreadDownloader
- func (d *MultiThreadDownloader) WithRoundTripper(roundTripper http.RoundTripper) *MultiThreadDownloader
- func (d *MultiThreadDownloader) WithShowProgress(showProgress bool) *MultiThreadDownloader
- func (d *MultiThreadDownloader) WithTimeout(timeout time.Duration) *MultiThreadDownloader
- func (d *MultiThreadDownloader) WithoutProxy(noProxy bool) *MultiThreadDownloader
- type ProgressIndicator
- type RetryClient
- type SuggestedFilenameAware
Constants ¶
const ( // ContentType is for the http header of content type ContentType = "Content-Type" // ApplicationForm is for the form submit ApplicationForm = "application/x-www-form-urlencoded" )
Variables ¶
This section is empty.
Functions ¶
func DetectSizeWithRoundTripper ¶ added in v0.0.68
func DetectSizeWithRoundTripper(targetURL, output string, showProgress, noProxy, insecureSkipVerify bool, roundTripper http.RoundTripper, timeout time.Duration) (total int64, rangeSupport bool, err error)
DetectSizeWithRoundTripper returns the size of target resource Deprecated, use DetectSizeWithRoundTripperAndAuth instead
func DetectSizeWithRoundTripperAndAuth ¶ added in v0.0.98
func DetectSizeWithRoundTripperAndAuth(targetURL, output string, showProgress, noProxy, insecureSkipVerify bool, roundTripper http.RoundTripper, username, password string, timeout time.Duration) (total int64, rangeSupport bool, err error)
DetectSizeWithRoundTripperAndAuth returns the size of target resource
func DownloadFileWithMultipleThreadKeepParts ¶
func DownloadFileWithMultipleThreadKeepParts(targetURL, targetFilePath string, thread int, keepParts, showProgress bool) (err error)
DownloadFileWithMultipleThreadKeepParts downloads the files with multiple threads
func GetCurrentLine ¶ added in v0.0.83
func GetCurrentLine() int
GetCurrentLine returns the current line
func ParseSuggestedFilename ¶ added in v0.0.88
ParseSuggestedFilename parse the filename from resp header,More details from https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
Types ¶
type ContinueDownloader ¶ added in v0.0.32
type ContinueDownloader struct {
UserName, Password string
Timeout time.Duration
Context context.Context
// contains filtered or unexported fields
}
ContinueDownloader is a downloader which support continuously download
func (*ContinueDownloader) DownloadWithContinue ¶ added in v0.0.32
func (c *ContinueDownloader) DownloadWithContinue(targetURL, output string, index, continueAt, end int64, showProgress bool) (err error)
DownloadWithContinue downloads the files continuously
func (*ContinueDownloader) GetSuggestedFilename ¶ added in v0.0.81
func (c *ContinueDownloader) GetSuggestedFilename() string
GetSuggestedFilename returns the suggested filename
func (*ContinueDownloader) WithBasicAuth ¶ added in v0.0.98
func (c *ContinueDownloader) WithBasicAuth(username, password string) *ContinueDownloader
WithBasicAuth sets the basic auth
func (*ContinueDownloader) WithContext ¶ added in v0.0.83
func (c *ContinueDownloader) WithContext(ctx context.Context) *ContinueDownloader
WithContext sets the context
func (*ContinueDownloader) WithInsecureSkipVerify ¶ added in v0.0.81
func (c *ContinueDownloader) WithInsecureSkipVerify(insecureSkipVerify bool) *ContinueDownloader
WithInsecureSkipVerify set if skip the insecure verify
func (*ContinueDownloader) WithRoundTripper ¶ added in v0.0.69
func (c *ContinueDownloader) WithRoundTripper(roundTripper http.RoundTripper) *ContinueDownloader
WithRoundTripper set WithRoundTripper
func (*ContinueDownloader) WithTimeout ¶ added in v0.0.83
func (c *ContinueDownloader) WithTimeout(timeout time.Duration) *ContinueDownloader
WithTimeout sets the timeout
func (*ContinueDownloader) WithoutProxy ¶ added in v0.0.69
func (c *ContinueDownloader) WithoutProxy(noProxy bool) *ContinueDownloader
WithoutProxy indicate no HTTP proxy use
type DownloadError ¶
DownloadError represents the error of HTTP download
type FakeReader ¶ added in v0.0.77
type FakeReader struct {
ExpectErr error
}
FakeReader is a fake reader for the test purpose
type HTTPDownloader ¶
type HTTPDownloader struct { TargetFilePath string URL string ShowProgress bool InsecureSkipVerify bool Context context.Context UserName string Password string NoProxy bool Proxy string ProxyAuth string Header map[string]string // PreStart returns false will don't continue PreStart func(*http.Response) bool Thread int Title string Timeout time.Duration Debug bool RoundTripper http.RoundTripper // contains filtered or unexported fields }
HTTPDownloader is the downloader for http request
func (*HTTPDownloader) DownloadFile ¶
func (h *HTTPDownloader) DownloadFile() error
DownloadFile download a file with the progress
func (*HTTPDownloader) GetSuggestedFilename ¶ added in v0.0.81
func (h *HTTPDownloader) GetSuggestedFilename() string
GetSuggestedFilename returns the suggested filename which comes from the HTTP response header. Returns empty string if the filename is same with the given name.
type MultiThreadDownloader ¶ added in v0.0.69
type MultiThreadDownloader struct {
// contains filtered or unexported fields
}
MultiThreadDownloader is a download with multi-thread
func (*MultiThreadDownloader) Download ¶ added in v0.0.69
func (d *MultiThreadDownloader) Download(targetURL, targetFilePath string, thread int) (err error)
Download starts to download the target URL
func (*MultiThreadDownloader) GetSuggestedFilename ¶ added in v0.0.81
func (d *MultiThreadDownloader) GetSuggestedFilename() string
GetSuggestedFilename returns the suggested filename
func (*MultiThreadDownloader) WithBasicAuth ¶ added in v0.0.98
func (d *MultiThreadDownloader) WithBasicAuth(username, password string) *MultiThreadDownloader
WithBasicAuth sets the basic auth
func (*MultiThreadDownloader) WithInsecureSkipVerify ¶ added in v0.0.81
func (d *MultiThreadDownloader) WithInsecureSkipVerify(insecureSkipVerify bool) *MultiThreadDownloader
WithInsecureSkipVerify set if skip the insecure verify
func (*MultiThreadDownloader) WithKeepParts ¶ added in v0.0.69
func (d *MultiThreadDownloader) WithKeepParts(keepParts bool) *MultiThreadDownloader
WithKeepParts indicates if keeping the part files
func (*MultiThreadDownloader) WithRoundTripper ¶ added in v0.0.69
func (d *MultiThreadDownloader) WithRoundTripper(roundTripper http.RoundTripper) *MultiThreadDownloader
WithRoundTripper sets RoundTripper
func (*MultiThreadDownloader) WithShowProgress ¶ added in v0.0.69
func (d *MultiThreadDownloader) WithShowProgress(showProgress bool) *MultiThreadDownloader
WithShowProgress indicate if show the download progress
func (*MultiThreadDownloader) WithTimeout ¶ added in v0.0.83
func (d *MultiThreadDownloader) WithTimeout(timeout time.Duration) *MultiThreadDownloader
WithTimeout sets the timeout
func (*MultiThreadDownloader) WithoutProxy ¶ added in v0.0.69
func (d *MultiThreadDownloader) WithoutProxy(noProxy bool) *MultiThreadDownloader
WithoutProxy indicates not use HTTP proxy
type ProgressIndicator ¶
type ProgressIndicator struct { Writer io.Writer Reader io.Reader Title string // bytes.Buffer Total float64 // contains filtered or unexported fields }
ProgressIndicator hold the progress of io operation
func (ProgressIndicator) Close ¶ added in v0.0.32
func (i ProgressIndicator) Close()
Close shutdowns the ui process
func (*ProgressIndicator) Init ¶
func (i *ProgressIndicator) Init()
Init set the default value for progress indicator
func (*ProgressIndicator) Read ¶
func (i *ProgressIndicator) Read(p []byte) (n int, err error)
Read reads the progress
func (*ProgressIndicator) Write ¶
func (i *ProgressIndicator) Write(p []byte) (n int, err error)
Write writes the progress See also https://en.wikipedia.org/wiki/ANSI_escape_code#Sequence_elements
type RetryClient ¶
RetryClient is the wrap of http.Client
func NewRetryClient ¶ added in v0.0.83
func NewRetryClient(client http.Client) *RetryClient
NewRetryClient creates the instance of RetryClient
type SuggestedFilenameAware ¶ added in v0.0.81
type SuggestedFilenameAware interface {
GetSuggestedFilename() string
}
SuggestedFilenameAware is the interface for getting suggested filename