如何使用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)
}
我得到了存储桶中所有对象的列表,但我只需要子文件夹中的对象列表。
答案 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”前缀以获取所有子对象