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