client

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	S3DeleteObjectsSizeLimit = 1000

	// S3 API can achieve at least 3,500 PUT/COPY/POST/DELETE or 5,500 GET/HEAD requests per second per partitioned prefix.
	// Values above that threshold cause many 503 errors.
	// So limit DeleteObjects to 3 parallels of 1000 objects at a time.
	// https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html
	MaxS3DeleteObjectsParallelsCount = 3
)
View Source
const DefaultAwsRegion = "ap-northeast-1"
View Source
const MaxRetryCount = 10

Variables

View Source
var SleepTimeSecForS3 = 10

Functions

func LoadAWSConfig

func LoadAWSConfig(ctx context.Context, region string, profile string) (aws.Config, error)

Types

type ClientError

type ClientError struct {
	ResourceName *string
	Err          error
}

ClientError provides the error with a resource name

func (*ClientError) Error

func (e *ClientError) Error() string

func (*ClientError) Unwrap

func (e *ClientError) Unwrap() error

type IS3

type IS3 interface {
	DeleteBucket(ctx context.Context, bucketName *string, region string) error
	DeleteObjects(ctx context.Context, bucketName *string, objects []types.ObjectIdentifier, region string, quiet bool) ([]types.Error, error)
	ListObjectVersions(ctx context.Context, bucketName *string, region string) ([]types.ObjectIdentifier, error)
	CheckBucketExists(ctx context.Context, bucketName *string) (bool, error)
	ListBuckets(ctx context.Context) ([]types.Bucket, error)
	GetBucketLocation(ctx context.Context, bucketName *string) (string, error)
}

type MockIS3

type MockIS3 struct {
	// contains filtered or unexported fields
}

MockIS3 is a mock of IS3 interface.

func NewMockIS3

func NewMockIS3(ctrl *gomock.Controller) *MockIS3

NewMockIS3 creates a new mock instance.

func (*MockIS3) CheckBucketExists

func (m *MockIS3) CheckBucketExists(ctx context.Context, bucketName *string) (bool, error)

CheckBucketExists mocks base method.

func (*MockIS3) DeleteBucket

func (m *MockIS3) DeleteBucket(ctx context.Context, bucketName *string, region string) error

DeleteBucket mocks base method.

func (*MockIS3) DeleteObjects

func (m *MockIS3) DeleteObjects(ctx context.Context, bucketName *string, objects []types.ObjectIdentifier, region string, quiet bool) ([]types.Error, error)

DeleteObjects mocks base method.

func (*MockIS3) EXPECT

func (m *MockIS3) EXPECT() *MockIS3MockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockIS3) GetBucketLocation added in v0.7.0

func (m *MockIS3) GetBucketLocation(ctx context.Context, bucketName *string) (string, error)

GetBucketLocation mocks base method.

func (*MockIS3) ListBuckets

func (m *MockIS3) ListBuckets(ctx context.Context) ([]types.Bucket, error)

ListBuckets mocks base method.

func (*MockIS3) ListObjectVersions

func (m *MockIS3) ListObjectVersions(ctx context.Context, bucketName *string, region string) ([]types.ObjectIdentifier, error)

ListObjectVersions mocks base method.

type MockIS3MockRecorder

type MockIS3MockRecorder struct {
	// contains filtered or unexported fields
}

MockIS3MockRecorder is the mock recorder for MockIS3.

func (*MockIS3MockRecorder) CheckBucketExists

func (mr *MockIS3MockRecorder) CheckBucketExists(ctx, bucketName interface{}) *gomock.Call

CheckBucketExists indicates an expected call of CheckBucketExists.

func (*MockIS3MockRecorder) DeleteBucket

func (mr *MockIS3MockRecorder) DeleteBucket(ctx, bucketName, region interface{}) *gomock.Call

DeleteBucket indicates an expected call of DeleteBucket.

func (*MockIS3MockRecorder) DeleteObjects

func (mr *MockIS3MockRecorder) DeleteObjects(ctx, bucketName, objects, region, quiet interface{}) *gomock.Call

DeleteObjects indicates an expected call of DeleteObjects.

func (*MockIS3MockRecorder) GetBucketLocation added in v0.7.0

func (mr *MockIS3MockRecorder) GetBucketLocation(ctx, bucketName interface{}) *gomock.Call

GetBucketLocation indicates an expected call of GetBucketLocation.

func (*MockIS3MockRecorder) ListBuckets

func (mr *MockIS3MockRecorder) ListBuckets(ctx interface{}) *gomock.Call

ListBuckets indicates an expected call of ListBuckets.

func (*MockIS3MockRecorder) ListObjectVersions

func (mr *MockIS3MockRecorder) ListObjectVersions(ctx, bucketName, region interface{}) *gomock.Call

ListObjectVersions indicates an expected call of ListObjectVersions.

type Retryer

type Retryer struct {
	// contains filtered or unexported fields
}

func NewRetryer

func NewRetryer(isErrorRetryableFunc func(error) bool, delayTimeSec int) *Retryer

func (*Retryer) GetAttemptToken

func (r *Retryer) GetAttemptToken(context.Context) (func(error) error, error)

func (*Retryer) GetInitialToken

func (r *Retryer) GetInitialToken() func(error) error

func (*Retryer) GetRetryToken

func (r *Retryer) GetRetryToken(context.Context, error) (func(error) error, error)

func (*Retryer) IsErrorRetryable

func (r *Retryer) IsErrorRetryable(err error) bool

func (*Retryer) MaxAttempts

func (r *Retryer) MaxAttempts() int

func (*Retryer) RetryDelay

func (r *Retryer) RetryDelay(int, error) (time.Duration, error)

type S3

type S3 struct {
	// contains filtered or unexported fields
}

func NewS3

func NewS3(client *s3.Client) *S3

func (*S3) CheckBucketExists

func (s *S3) CheckBucketExists(ctx context.Context, bucketName *string) (bool, error)

func (*S3) DeleteBucket

func (s *S3) DeleteBucket(ctx context.Context, bucketName *string, region string) error

func (*S3) DeleteObjects

func (s *S3) DeleteObjects(ctx context.Context, bucketName *string, objects []types.ObjectIdentifier, region string, quiet bool) ([]types.Error, error)

func (*S3) GetBucketLocation added in v0.7.0

func (s *S3) GetBucketLocation(ctx context.Context, bucketName *string) (string, error)

func (*S3) ListBuckets

func (s *S3) ListBuckets(ctx context.Context) ([]types.Bucket, error)

func (*S3) ListObjectVersions

func (s *S3) ListObjectVersions(ctx context.Context, bucketName *string, region string) ([]types.ObjectIdentifier, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL