summaryrefslogtreecommitdiff
path: root/aws.go
diff options
context:
space:
mode:
authorNick White <git@njw.name>2019-10-16 17:17:05 +0100
committerNick White <git@njw.name>2019-10-16 17:17:05 +0100
commit7ec2824670bae240d73af63d810e0c946ae6981a (patch)
tree843977fe0e73ca49e03fa6d191a4593f6baa13f2 /aws.go
parentff809ad480061d9efce5ce33cda1e877cf63c936 (diff)
Sort book list in lspipeline by modified date
Diffstat (limited to 'aws.go')
-rw-r--r--aws.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/aws.go b/aws.go
index 0127d6e..5a037ff 100644
--- a/aws.go
+++ b/aws.go
@@ -27,6 +27,11 @@ type InstanceDetails struct {
Id, Name, Ip, Spot, Type, State, LaunchTime string
}
+type ObjMeta struct {
+ Name string
+ Date time.Time
+}
+
type AwsConn struct {
// these need to be set before running Init()
Region string
@@ -231,6 +236,20 @@ func (a *AwsConn) ListObjects(bucket string, prefix string) ([]string, error) {
return names, err
}
+func (a *AwsConn) ListObjectsWithMeta(bucket string, prefix string) ([]ObjMeta, error) {
+ var objs []ObjMeta
+ err := a.s3svc.ListObjectsV2Pages(&s3.ListObjectsV2Input{
+ Bucket: aws.String(bucket),
+ Prefix: aws.String(prefix),
+ }, func(page *s3.ListObjectsV2Output, last bool) bool {
+ for _, r := range page.Contents {
+ objs = append(objs, ObjMeta{Name: *r.Key, Date: *r.LastModified})
+ }
+ return true
+ })
+ return objs, err
+}
+
func (a *AwsConn) AddToQueue(url string, msg string) error {
_, err := a.sqssvc.SendMessage(&sqs.SendMessageInput{
MessageBody: &msg,