Skip to content

Commit 5e3ade2

Browse files
author
Aaron Schlesinger
committed
feat(pkg/gitreceive/storage): add convenience funcs for dealing with object storage
1 parent bc5e070 commit 5e3ade2

4 files changed

Lines changed: 62 additions & 0 deletions

File tree

pkg/gitreceive/storage/bucket.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package storage
2+
3+
func CreateBucket(s3Client *s3.Client, bucketName string) error {
4+
_, err := s3Client.CreateBucket(&s3.CreateBucketInput{
5+
Bucket: aws.String(bucketName),
6+
})
7+
return err
8+
}

pkg/gitreceive/storage/client.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package storage
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/aws/session"
6+
"github.com/aws/aws-sdk-go/service/s3"
7+
)
8+
9+
func GetClient() (*s3.S3, error) {
10+
awsCfg := new(aws.Config)
11+
endpt, err := getEndpoint()
12+
if err != nil {
13+
return nil, err
14+
}
15+
awsCfg.Endpoint = endpt
16+
creds, err := getCreds()
17+
if err != nil {
18+
return nil, err
19+
}
20+
awsCfg.Credentials = creds
21+
svc := s3.New(session.New(awsCfg), &aws.Config{})
22+
return svc, nil
23+
}

pkg/gitreceive/storage/exists.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package storage
2+
3+
import (
4+
"github.com/aws/aws-sdk-go/aws"
5+
"github.com/aws/aws-sdk-go/service/s3"
6+
)
7+
8+
func ObjectExists(s3Client *s3.S3, bucket, objName string) bool {
9+
// see https://godoc.org/github.com/aws/aws-sdk-go/service/s3#example-S3-HeadObject
10+
in := &s3.HeadObjectInput{
11+
Bucket: aws.String(bucket),
12+
Key: aws.String(objName),
13+
}
14+
resp, err := svc.HeadObject(in)
15+
if err != nil {
16+
return false
17+
}
18+
return resp != nil
19+
}

pkg/gitreceive/storage/upload.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package storage
2+
3+
import (
4+
"io"
5+
6+
"github.com/aws/aws-sdk-go/service/s3"
7+
)
8+
9+
func Upload(s3Client *s3.S3, bucketName, objKey string, reader io.Reader) error {
10+
// see https://godoc.org/github.com/aws/aws-sdk-go/service/s3#example-S3-PutObject
11+
return nil
12+
}

0 commit comments

Comments
 (0)