package s3 import ( "context" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/aws-sdk-go-v2/service/s3/types" "github.com/samber/lo" ) type ListBucketRes struct { CreatedAt int64 Name string } func (c *Client) ListBucket(ctx context.Context) ([]*ListBucketRes, error) { var ( err error input = &s3.ListBucketsInput{ MaxBuckets: aws.Int32(100), } output *s3.ListBucketsOutput ) if output, err = c.client.ListBuckets(ctx, input); err != nil { return nil, err } res := lo.Map( output.Buckets, func(item types.Bucket, index int) *ListBucketRes { return &ListBucketRes{CreatedAt: item.CreationDate.UnixMilli(), Name: *item.Name} }, ) return res, nil }