Skip to content

Instantly share code, notes, and snippets.

@kwilczynski
Last active March 22, 2021 00:02
Show Gist options
  • Save kwilczynski/a6c7111ba6007548dcfee7db2f2a06b2 to your computer and use it in GitHub Desktop.
Save kwilczynski/a6c7111ba6007548dcfee7db2f2a06b2 to your computer and use it in GitHub Desktop.
Example of listing S3 bucket objects in Go
package main
import (
"flag"
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
const DefaultRegion = "us-east-1"
var (
bucket = flag.String("bucket", "", "Name of the S3 bucket to list objects from")
)
func main() {
flag.Parse()
sess := session.Must(session.NewSession())
region := aws.StringValue(sess.Config.Region)
if region == "" {
region = DefaultRegion
}
s3Service := s3.New(sess, aws.NewConfig().WithRegion(region))
err := s3Service.ListObjectsPages(&s3.ListObjectsInput{
Bucket: bucket,
}, func(p *s3.ListObjectsOutput, last bool) bool {
for _, o := range p.Contents {
fmt.Printf("Object: %v\n", *o.Key)
}
return true
})
if err != nil {
panic(fmt.Sprintf("Failed to list objects from S3 bucket: %s: %s", *bucket, err))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment