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