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