登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-06 08:36:20 163浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《如何从s3获取超过1000个对象》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我在 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
}

解决方案


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

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
}

今天关于《如何从s3获取超过1000个对象》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>