 Documentation
      ¶
      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)