我正在尝试使用Golang列出S3存储桶中的所有对象,但是,我发现了Golang

S3 List函数将仅返回1000个对象。

因此,在PHP中,我可以使用

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

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

Golang中的机制(或迭代器函数),我还可以从中迭代下一个1000个对象

迭代器?

谢谢

最佳答案

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

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)
    }

}

07-27 13:42