From 3b8e103edd7644c5b9d69038905eda67ac4c3c1c Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Mon, 5 Jun 2023 18:04:36 +0200 Subject: [PATCH] Add support for setting S3 compatible endpoint Signed-off-by: Knut Ahlers --- main.go | 1 + upload.go | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 8fce723..6f37759 100644 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ var ( Bootstrap bool `flag:"bootstrap" default:"false" description:"Upload frontend files into bucket"` Bucket string `flag:"bucket" default:"" description:"S3 bucket to upload files to" validate:"nonzero"` ContentType string `flag:"content-type,c" default:"" description:"Force content-type to be set to this value"` + Endpoint string `flag:"endpoint" default:"" description:"Override AWS S3 endpoint (i.e. to use MinIO)"` FileTemplate string `flag:"file-template" vardefault:"file_template" description:"Full name template of the uploaded file"` Listen string `flag:"listen" default:"" description:"Enable HTTP server if set to IP/Port (e.g. ':3000')"` LogLevel string `flag:"log-level" default:"info" description:"Log level (debug, info, warn, error, fatal)"` diff --git a/upload.go b/upload.go index 364b3dc..6b80af5 100644 --- a/upload.go +++ b/upload.go @@ -64,7 +64,12 @@ func executeUpload(inFileName string, inFileHandle io.ReadSeeker, useCalculatedF contentEncoding = aws.String("gzip") } - sess := session.Must(session.NewSession()) + var awsCfgs []*aws.Config + if cfg.Endpoint != "" { + awsCfgs = append(awsCfgs, &aws.Config{Endpoint: &cfg.Endpoint, S3ForcePathStyle: aws.Bool(true)}) + } + + sess := session.Must(session.NewSession(awsCfgs...)) svc := s3.New(sess) ps, err := newProgressSeeker(inFileHandle)