Documentation ¶
Index ¶
- func Download(d Downloader) (int, io.ReadCloser, error)
- func GetResourceNameFromBlobUri(uri string) string
- func IsAzureStorageBlobUri(url string) bool
- func SaveTo(ctx *log.Context, d []Downloader, dst string, mode os.FileMode) (int64, error)
- func WithRetries(ctx *log.Context, downloaders []Downloader, sf SleepFunc) (io.ReadCloser, error)
- type Downloader
- type MsiProvider
- type SleepFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Download ¶
func Download(d Downloader) (int, io.ReadCloser, error)
Download retrieves a response body and checks the response status code to see if it is 200 OK and then returns the response body. It issues a new request every time called. It is caller's responsibility to close the response body.
func IsAzureStorageBlobUri ¶
func SaveTo ¶
SaveTo uses given downloader to fetch the resource with retries and saves the given file. Directory of dst is not created by this function. If a file at dst exists, it will be truncated. If a new file is created, mode is used to set the permission bits. Written number of bytes are returned on success.
func WithRetries ¶
func WithRetries(ctx *log.Context, downloaders []Downloader, sf SleepFunc) (io.ReadCloser, error)
WithRetries retrieves a response body using the specified downloader. Any error returned from d will be retried (and retrieved response bodies will be closed on failures). If the retries do not succeed, the last error is returned.
It sleeps in exponentially increasing durations between retries.
Types ¶
type Downloader ¶
type Downloader interface { // GetRequest returns a new GET request for the resource. GetRequest() (*http.Request, error) }
Downloader describes a method to download files.
func NewBlobDownload ¶
func NewBlobDownload(accountName, accountKey string, blob blobutil.AzureBlobRef) Downloader
NewBlobDownload creates a new Downloader for a blob hosted in Azure Blob Storage.
func NewBlobWithMsiDownload ¶
func NewBlobWithMsiDownload(url string, msiProvider MsiProvider) Downloader
func NewURLDownload ¶
func NewURLDownload(url string) Downloader
NewURLDownload creates a new downloader with the provided URL
type MsiProvider ¶
func GetMsiProviderForStorageAccountsImplicitly ¶
func GetMsiProviderForStorageAccountsImplicitly(blobUri string) MsiProvider
func GetMsiProviderForStorageAccountsWithClientId ¶
func GetMsiProviderForStorageAccountsWithClientId(blobUri, clientId string) MsiProvider
func GetMsiProviderForStorageAccountsWithObjectId ¶
func GetMsiProviderForStorageAccountsWithObjectId(blobUri, objectId string) MsiProvider