1//go:build example 2// +build example 3 4package main 5 6import ( 7 "fmt" 8 "os" 9 10 "github.com/aws/aws-sdk-go/aws/session" 11 "github.com/aws/aws-sdk-go/service/s3" 12) 13 14// Lists all objects in a bucket using pagination 15// 16// Usage: 17// listObjects <bucket> 18func main() { 19 if len(os.Args) < 2 { 20 fmt.Println("you must specify a bucket") 21 return 22 } 23 24 sess := session.Must(session.NewSession()) 25 26 svc := s3.New(sess) 27 28 i := 0 29 err := svc.ListObjectsPages(&s3.ListObjectsInput{ 30 Bucket: &os.Args[1], 31 }, func(p *s3.ListObjectsOutput, last bool) (shouldContinue bool) { 32 fmt.Println("Page,", i) 33 i++ 34 35 for _, obj := range p.Contents { 36 fmt.Println("Object:", *obj.Key) 37 } 38 return true 39 }) 40 if err != nil { 41 fmt.Println("failed to list objects", err) 42 return 43 } 44} 45