wormhole-explorer/common/client/s3/s3.go

35 lines
684 B
Go

package s3
import (
"bytes"
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/feature/s3/manager"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
type S3Repository struct {
uploader *manager.Uploader
bucket string
}
func NewS3Repository(awsConfig aws.Config, bucket string) *S3Repository {
client := s3.NewFromConfig(awsConfig)
return &S3Repository{
uploader: manager.NewUploader(client),
bucket: bucket,
}
}
func (r *S3Repository) Save(ctx context.Context, key string, body []byte) error {
_, err := r.uploader.Upload(ctx,
&s3.PutObjectInput{
Bucket: &r.bucket,
Key: &key,
Body: bytes.NewReader(body),
})
return err
}