in client/client.go [279:311]
func (a Args) toClients() (*http.Client, *storage.Client, error) {
if err := a.validate(); err != nil {
return nil, nil, err
}
httpOpts := []http.Option{}
if !a.HTTP.Compression {
httpOpts = append(httpOpts, http.WithoutCompression())
}
httpClient, err := http.New(a.HTTP.Endpoint, a.HTTP.Cred, a.HTTP.Opts, httpOpts...)
if err != nil {
return nil, nil, fmt.Errorf("failed to create HTTP client: %w", err)
}
blobOpts := []storage.Option{
storage.WithLogger(a.logger),
}
if a.Blob.Opts != nil {
blobOpts = append(blobOpts, storage.WithPolicyOptions(*a.Blob.Opts))
}
if a.Blob.ContainerExt != "" {
blobOpts = append(blobOpts, storage.WithContainerExt(a.Blob.ContainerExt))
}
blobClient, err := storage.New(a.Blob.Endpoint, a.Blob.Cred, blobOpts...)
if err != nil {
return nil, nil, fmt.Errorf("failed to create blob client: %w", err)
}
return httpClient, blobClient, nil
}