From a610e77c381850f28e504617cda08623f74cb208 Mon Sep 17 00:00:00 2001 From: Nick White Date: Tue, 3 Dec 2019 13:43:08 +0000 Subject: Rewrite lspipeline book listing part to be much faster by taking advantage of the aws CommonPrefixes output --- aws.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'aws.go') diff --git a/aws.go b/aws.go index f5ac338..6f7d385 100644 --- a/aws.go +++ b/aws.go @@ -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, -- cgit v1.2.1-24-ge1ad