Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php golang S3客户端库是否具有获取迭代器函数来检索S3 bucket中的所有对象_Php_Amazon S3_Go - Fatal编程技术网

Php golang S3客户端库是否具有获取迭代器函数来检索S3 bucket中的所有对象

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个对象 迭代器 谢谢编辑:是的

我试图使用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个条目。需要使用迭代所有键的版本