golang S3客户端库是否具有get Iterator函数来检索S3存储桶中的所有对象

时间:2014-11-12 15:22:29

标签: php amazon-s3 go

我正在尝试使用Golang列出S3 Bucket中的所有对象,但是,我找到了Golang

S3 List函数只返回1000个对象。

所以,在PHP中,我可以使用

$ objects = S3-> getIterator('ListObjects',array('Bucket'=> $ bucket,'Prefix'=>'test /'));

如果我迭代$ objects中的100X项,它可以返回下一个100x对象。那有什么

Golang中的

机制(或迭代器函数),我也可以从

迭代接下来的1000个对象

迭代器?

谢谢

1 个答案:

答案 0 :(得分:2)

编辑:是的,他们这样做。

var (
    sqsRegion string
)

func init() {
    if err := godotenv.Load(); err != nil {
        log.Fatalf("Error loading .env file: %s", err.Error())
    }

    sqsRegion = os.Getenv("AWS_REGION")
}

func main() {

    sess := session.New(&aws.Config{Region: aws.String(sqsRegion)})

    svc := s3.New(sess)

    resp, err := svc.ListObjects(&s3.ListObjectsInput{
        Bucket: aws.String("yourbucket"),
    })

    if err != nil {
        log.Fatalln(err.Error())
    }

    for _, key := range resp.Contents {
        log.Println(*key.Key)
    }

}