diff options
author | Nick White <git@njw.name> | 2019-12-03 13:43:08 +0000 |
---|---|---|
committer | Nick White <git@njw.name> | 2019-12-03 13:43:08 +0000 |
commit | a610e77c381850f28e504617cda08623f74cb208 (patch) | |
tree | f264924ffb6421c0c97b36c4ac7d278da9947aaa /aws.go | |
parent | a2f98474f6e4ce35a4b191ab27b3293ebcdff418 (diff) |
Rewrite lspipeline book listing part to be much faster by taking advantage of the aws CommonPrefixes output
Diffstat (limited to 'aws.go')
-rw-r--r-- | aws.go | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -274,6 +274,21 @@ func (a *AwsConn) ListObjectsWithMeta(bucket string, prefix string) ([]ObjMeta, return objs, err } +func (a *AwsConn) ListObjectPrefixes(bucket string) ([]string, error) { + var prefixes []string + err := a.s3svc.ListObjectsV2Pages(&s3.ListObjectsV2Input{ + Bucket: aws.String(bucket), + Delimiter: aws.String("/"), + MaxKeys: aws.Int64(1), + }, func(page *s3.ListObjectsV2Output, last bool) bool { + for _, r := range page.CommonPrefixes { + prefixes = append(prefixes, *r.Prefix) + } + return true + }) + return prefixes, err +} + func (a *AwsConn) AddToQueue(url string, msg string) error { _, err := a.sqssvc.SendMessage(&sqs.SendMessageInput{ MessageBody: &msg, |