Php golang S3客户端库是否具有获取迭代器函数来检索S3 bucket中的所有对象
我试图使用Golang列出S3 Bucket中的所有对象,但是,我找到了Golang S3列表函数将只返回1000个对象 因此,在PHP中,我可以使用 $objects=S3->getIterator('ListObjects',array('Bucket'=>$Bucket,'Prefix'=>'test/') 如果我在$objects中迭代100x项,它可以返回下一个100x对象。那么有没有 Golang中的机制(或迭代器函数),我还可以从中迭代接下来的1000个对象 迭代器 谢谢编辑:是的,他们喜欢Php golang S3客户端库是否具有获取迭代器函数来检索S3 bucket中的所有对象,php,amazon-s3,go,Php,Amazon S3,Go,我试图使用Golang列出S3 Bucket中的所有对象,但是,我找到了Golang S3列表函数将只返回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)
}
}
您正在使用哪个s3库?通常,您只需请求最大数量的结果,然后在下一次通话中继续中断的位置。我不太确定下一次通话时如何从左边继续。我能举个例子吗?非常感谢。从您链接的文档中:
marker参数指定在bucket中列出对象时要开始的键
这最多只能给您1000个条目。需要使用迭代所有键的版本