Documentation
¶
Index ¶
- Constants
- func SDKLogLevel(levels string, out io.Writer) aws.LogLevelType
- type AWSsse
- type Conf
- type Credentials
- type Retryer
- type S3
- func (s *S3) Copy(src, dst string) error
- func (s *S3) Delete(name string) error
- func (s *S3) FileStat(name string) (inf storage.FileInfo, err error)
- func (s *S3) List(prefix, suffix string) ([]storage.FileInfo, error)
- func (s *S3) Save(name string, data io.Reader, sizeb int) error
- func (s *S3) SourceReader(name string) (io.ReadCloser, error)
- type S3Provider
- type SDKDebugLogLevel
Constants ¶
const (
// GCSEndpointURL is the endpoint url for Google Clound Strage service
GCSEndpointURL = "storage.googleapis.com"
)
Variables ¶
This section is empty.
Functions ¶
func SDKLogLevel ¶ added in v1.7.0
func SDKLogLevel(levels string, out io.Writer) aws.LogLevelType
SDKLogLevel returns AWS SDK log level value from comma-separated SDKDebugLogLevel values string. If the string does not contain a valid value, returns aws.LogOff.
If the string is incorrect formatted, prints warnings to the io.Writer. Passing nil as the io.Writer will discard any warnings.
Types ¶
type Conf ¶
type Conf struct {
Provider S3Provider `bson:"provider,omitempty" json:"provider,omitempty" yaml:"provider,omitempty"`
Region string `bson:"region" json:"region" yaml:"region"`
EndpointURL string `bson:"endpointUrl,omitempty" json:"endpointUrl" yaml:"endpointUrl,omitempty"`
Bucket string `bson:"bucket" json:"bucket" yaml:"bucket"`
Prefix string `bson:"prefix,omitempty" json:"prefix,omitempty" yaml:"prefix,omitempty"`
Credentials Credentials `bson:"credentials" json:"-" yaml:"credentials"`
ServerSideEncryption *AWSsse `bson:"serverSideEncryption,omitempty" json:"serverSideEncryption,omitempty" yaml:"serverSideEncryption,omitempty"`
UploadPartSize int `bson:"uploadPartSize,omitempty" json:"uploadPartSize,omitempty" yaml:"uploadPartSize,omitempty"`
MaxUploadParts int `bson:"maxUploadParts,omitempty" json:"maxUploadParts,omitempty" yaml:"maxUploadParts,omitempty"`
StorageClass string `bson:"storageClass,omitempty" json:"storageClass,omitempty" yaml:"storageClass,omitempty"`
// InsecureSkipTLSVerify disables client verification of the server's
// certificate chain and host name
InsecureSkipTLSVerify bool `bson:"insecureSkipTLSVerify" json:"insecureSkipTLSVerify" yaml:"insecureSkipTLSVerify"`
// DebugLogLevels enables AWS SDK debug logging (sub)levels. Available options:
// LogDebug, Signing, HTTPBody, RequestRetries, RequestErrors, EventStreamBody
//
// Any sub levels will enable LogDebug level accordingly to AWS SDK Go module behavior
// https://pkg.go.dev/github.com/aws/aws-sdk-go@v1.40.7/aws#LogLevelType
DebugLogLevels string `bson:"debugLogLevels,omitempty" json:"debugLogLevels,omitempty" yaml:"debugLogLevels,omitempty"`
// Retryer is configuration for client.DefaultRetryer
// https://pkg.go.dev/github.com/aws/aws-sdk-go/aws/client#DefaultRetryer
Retryer *Retryer `bson:"retryer,omitempty" json:"retryer,omitempty" yaml:"retryer,omitempty"`
}
type Credentials ¶
type Credentials struct {
AccessKeyID string `bson:"access-key-id" json:"access-key-id,omitempty" yaml:"access-key-id,omitempty"`
SecretAccessKey string `bson:"secret-access-key" json:"secret-access-key,omitempty" yaml:"secret-access-key,omitempty"`
Vault struct {
Server string `bson:"server" json:"server,omitempty" yaml:"server"`
Secret string `bson:"secret" json:"secret,omitempty" yaml:"secret"`
Token string `bson:"token" json:"token,omitempty" yaml:"token"`
} `bson:"vault" json:"vault" yaml:"vault,omitempty"`
}
type Retryer ¶ added in v1.7.0
type Retryer struct {
// Num max Retries is the number of max retries that will be performed.
// https://pkg.go.dev/github.com/aws/aws-sdk-go/aws/client#DefaultRetryer.NumMaxRetries
NumMaxRetries int `bson:"numMaxRetries" json:"numMaxRetries" yaml:"numMaxRetries"`
// MinRetryDelay is the minimum retry delay after which retry will be performed.
// https://pkg.go.dev/github.com/aws/aws-sdk-go/aws/client#DefaultRetryer.MinRetryDelay
MinRetryDelay time.Duration `bson:"minRetryDelay" json:"minRetryDelay" yaml:"minRetryDelay"`
// MaxRetryDelay is the maximum retry delay before which retry must be performed.
// https://pkg.go.dev/github.com/aws/aws-sdk-go/aws/client#DefaultRetryer.MaxRetryDelay
MaxRetryDelay time.Duration `bson:"maxRetryDelay" json:"maxRetryDelay" yaml:"maxRetryDelay"`
}
type S3 ¶
type S3 struct {
// contains filtered or unexported fields
}
func (*S3) Delete ¶
Delete deletes given file. It returns storage.ErrNotExist if a file isn't exists
func (*S3) SourceReader ¶
func (s *S3) SourceReader(name string) (io.ReadCloser, error)
SourceReader reads object with the given name from S3 and pipes its data to the returned io.ReadCloser.
It uses partReader to download the object by chunks (`downloadChuckSize`). In case of error, it would retry get the next bytes up to `downloadRetries` times. If it fails to do so or connection error happened, it recreates the session and tries again up to `downloadRetries` times.
type S3Provider ¶
type S3Provider string
const ( S3ProviderUndef S3Provider = "" S3ProviderAWS S3Provider = "aws" S3ProviderGCS S3Provider = "gcs" )
type SDKDebugLogLevel ¶ added in v1.7.0
type SDKDebugLogLevel string
const ( LogDebug SDKDebugLogLevel = "LogDebug" Signing SDKDebugLogLevel = "Signing" HTTPBody SDKDebugLogLevel = "HTTPBody" RequestRetries SDKDebugLogLevel = "RequestRetries" RequestErrors SDKDebugLogLevel = "RequestErrors" EventStreamBody SDKDebugLogLevel = "EventStreamBody" )
func (SDKDebugLogLevel) SDKLogLevel ¶ added in v1.7.0
func (l SDKDebugLogLevel) SDKLogLevel() aws.LogLevelType
SDKLogLevel returns the appropriate AWS SDK debug logging level. If the level is not recognized, returns aws.LogLevelType(0)