1package manager 2 3import ( 4 "context" 5 6 "github.com/aws/aws-sdk-go-v2/service/s3" 7) 8 9// DeleteObjectsAPIClient is an S3 API client that can invoke the DeleteObjects operation. 10type DeleteObjectsAPIClient interface { 11 DeleteObjects(context.Context, *s3.DeleteObjectsInput, ...func(*s3.Options)) (*s3.DeleteObjectsOutput, error) 12} 13 14// DownloadAPIClient is an S3 API client that can invoke the GetObject operation. 15type DownloadAPIClient interface { 16 GetObject(context.Context, *s3.GetObjectInput, ...func(*s3.Options)) (*s3.GetObjectOutput, error) 17} 18 19// HeadBucketAPIClient is an S3 API client that can invoke the HeadBucket operation. 20type HeadBucketAPIClient interface { 21 HeadBucket(context.Context, *s3.HeadBucketInput, ...func(*s3.Options)) (*s3.HeadBucketOutput, error) 22} 23 24// ListObjectsV2APIClient is an S3 API client that can invoke the ListObjectV2 operation. 25type ListObjectsV2APIClient interface { 26 ListObjectsV2(context.Context, *s3.ListObjectsV2Input, ...func(*s3.Options)) (*s3.ListObjectsV2Output, error) 27} 28 29// UploadAPIClient is an S3 API client that can invoke PutObject, UploadPart, CreateMultipartUpload, 30// CompleteMultipartUpload, and AbortMultipartUpload operations. 31type UploadAPIClient interface { 32 PutObject(context.Context, *s3.PutObjectInput, ...func(*s3.Options)) (*s3.PutObjectOutput, error) 33 UploadPart(context.Context, *s3.UploadPartInput, ...func(*s3.Options)) (*s3.UploadPartOutput, error) 34 CreateMultipartUpload(context.Context, *s3.CreateMultipartUploadInput, ...func(*s3.Options)) (*s3.CreateMultipartUploadOutput, error) 35 CompleteMultipartUpload(context.Context, *s3.CompleteMultipartUploadInput, ...func(*s3.Options)) (*s3.CompleteMultipartUploadOutput, error) 36 AbortMultipartUpload(context.Context, *s3.AbortMultipartUploadInput, ...func(*s3.Options)) (*s3.AbortMultipartUploadOutput, error) 37} 38