diff --git a/Dockerfile b/Dockerfile index addad3f..c1a2f2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,8 @@ FROM alpine:3.8 COPY --from=build /go/bin/linx-server /usr/local/bin/linx-server ENV GOPATH /go +ENV SSL_CERT_FILE /etc/ssl/cert.pem + COPY static /go/src/github.com/andreimarcu/linx-server/static/ COPY templates /go/src/github.com/andreimarcu/linx-server/templates/ diff --git a/backends/s3/s3.go b/backends/s3/s3.go index 98b5ebc..7ae326c 100644 --- a/backends/s3/s3.go +++ b/backends/s3/s3.go @@ -22,11 +22,10 @@ type S3Backend struct { } func (b S3Backend) Delete(key string) error { - input := &s3.DeleteObjectInput{ + _, err := b.svc.DeleteObject(&s3.DeleteObjectInput{ Bucket: aws.String(b.bucket), Key: aws.String(key), - } - _, err := b.svc.DeleteObject(input) + }) if err != nil { return err } @@ -34,23 +33,22 @@ func (b S3Backend) Delete(key string) error { } func (b S3Backend) Exists(key string) (bool, error) { - input := &s3.HeadObjectInput{ + _, err := b.svc.HeadObject(&s3.HeadObjectInput{ Bucket: aws.String(b.bucket), Key: aws.String(key), - } - _, err := b.svc.HeadObject(input) + }) return err == nil, err } func (b S3Backend) Head(key string) (metadata backends.Metadata, err error) { - input := &s3.HeadObjectInput{ + var result *s3.HeadObjectOutput + result, err = b.svc.HeadObject(&s3.HeadObjectInput{ Bucket: aws.String(b.bucket), Key: aws.String(key), - } - result, err := b.svc.HeadObject(input) + }) if err != nil { if aerr, ok := err.(awserr.Error); ok { - if aerr.Code() == s3.ErrCodeNoSuchKey { + if aerr.Code() == s3.ErrCodeNoSuchKey || aerr.Code() == "NotFound" { err = backends.NotFoundErr } } @@ -62,14 +60,14 @@ func (b S3Backend) Head(key string) (metadata backends.Metadata, err error) { } func (b S3Backend) Get(key string) (metadata backends.Metadata, r io.ReadCloser, err error) { - input := &s3.GetObjectInput{ + var result *s3.GetObjectOutput + result, err = b.svc.GetObject(&s3.GetObjectInput{ Bucket: aws.String(b.bucket), Key: aws.String(key), - } - result, err := b.svc.GetObject(input) + }) if err != nil { if aerr, ok := err.(awserr.Error); ok { - if aerr.Code() == s3.ErrCodeNoSuchKey { + if aerr.Code() == s3.ErrCodeNoSuchKey || aerr.Code() == "NotFound" { err = backends.NotFoundErr } } @@ -94,7 +92,7 @@ func mapMetadata(m backends.Metadata) map[string]*string { func unmapMetadata(input map[string]*string) (m backends.Metadata, err error) { expiry, err := strconv.ParseInt(aws.StringValue(input["Expiry"]), 10, 64) if err != nil { - return + return m, err } m.Expiry = time.Unix(expiry, 0) @@ -112,7 +110,7 @@ func unmapMetadata(input map[string]*string) (m backends.Metadata, err error) { func (b S3Backend) Put(key string, r io.Reader, expiry time.Time, deleteKey string) (m backends.Metadata, err error) { tmpDst, err := ioutil.TempFile("", "linx-server-upload") if err != nil { - return + return m, err } defer tmpDst.Close() defer os.Remove(tmpDst.Name())