amazon-web-services - 如何从 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
}
推荐阅读
- css - 如何在html中的一行内对齐多个按钮?
- rabbitmq - 集群中的 RabbitMQ Shovel 插件
- reactjs - 我在使用 redux 获取本机反应数据时遇到错误
- android - 如何在 Android 上同时连接到 MOBILE 时检查 Wi-Fi 连接 (SSID)
- wpf - 根据 wpf 中的值启用/禁用列表视图内的按钮
- python - 为 django 2.1+ 适配 MultiHostMiddleware
- php - PHP 版本 7.2.13 中的文件未移动到文件夹
- c# - 无法将字符串转换为 system.Net.HttpContent
- php - 如何在 PHP 中将特殊时区的当前日期和时间转换为十进制(16,4)
- ms-access - 如何通过(无限)添加按钮在主窗体中制作系列子窗体?