如何从s3获取超过1000个对象

sal*_*ar3 1 amazon-s3 go amazon-web-services

我在 s3 上有大约 300K 个对象,我需要获取所有这些对象,根据文档,它声明只会返回前 1000 个对象。我怎样才能使用 Go 来完成这个任务?非常感谢任何帮助。

// Get the list of items
resp, err := s3svc.ListObjectsV2(&s3.ListObjectsV2Input{
    Bucket:  aws.String(Bucket),
    Prefix:  aws.String(Prefix),
})
if err != nil {
    exitErrorf("Unable to list items in bucket %q, %v", Bucket, err)
}

for _, item := range resp.Contents {
    // Store data
}
Run Code Online (Sandbox Code Playgroud)

Cer*_*món 10

使用延续标记迭代所有对象:

var continuationToken *string
for {
    resp, err := u.s3.ListObjectsV2(&s3.ListObjectsV2Input{
        Bucket:  aws.String(Bucket),
        Prefix:  aws.String(Prefix),
        ContinuationToken: continuationToken,
    })
    if err != nil {
        exitErrorf("Unable to list items in bucket %q, %v", Bucket, err)
    }
    for _, item := range resp.Contents {
         // process each object.
    }
    if !aws.BoolValue(resp.IsTruncated) {
        break
    }
    continuationToken = resp.NextContinuationToken
}
Run Code Online (Sandbox Code Playgroud)