如何使用golang从Amazon S3存储桶的子文件夹中获取对象列表?

时间:2016-09-22 11:22:46

标签: go

如何使用golang从Amazon S3存储桶的子文件夹中获取对象列表?

我试过了:

svc := s3.New(session.New(), &aws.Config{Region: aws.String("us-east-1")})

params := &s3.ListObjectsInput{
    Bucket: aws.String("bucket"),
}

resp, _ := svc.ListObjects(params)
for _, key := range resp.Contents {
    fmt.Println(*key.Key)
}

我得到了存储桶中所有对象的列表,但我只需要子文件夹中的对象列表。

2 个答案:

答案 0 :(得分:10)

在参数

中添加前缀参数
params := &s3.ListObjectsInput {
    Bucket: aws.String("bucket"),
    Prefix: aws.String("root/subfolder"),
}

将列出子文件夹/

中的对象

答案 1 :(得分:2)

为了访问文件夹(它们不是真正的文件夹,因为s3是对象存储) 您必须为ListObjectsInput提供Prefix和Delimiter属性 说你有s3:// foo / bar 您可以使用'/'分隔符提供“foo / bar”前缀以获取所有子对象