use go-logger to add debug level logs

Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
Jakub Sokołowski 2022-07-18 16:22:48 +02:00
parent 7dd471bb78
commit d0a4deae19
No known key found for this signature in database
GPG Key ID: 09AA5403E54D9931
4 changed files with 32 additions and 12 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
go-s3up

5
go.mod
View File

@ -4,4 +4,7 @@ go 1.17
require github.com/aws/aws-sdk-go v1.42.32
require github.com/jmespath/go-jmespath v0.4.0 // indirect
require (
github.com/apsdehal/go-logger v0.0.0-20190515211354-1abdf898e024 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
)

2
go.sum
View File

@ -1,3 +1,5 @@
github.com/apsdehal/go-logger v0.0.0-20190515211354-1abdf898e024 h1:dfZ6RF0UxHqt7xPz0r7h00apsaa6rIrFhT6Xly55Exk=
github.com/apsdehal/go-logger v0.0.0-20190515211354-1abdf898e024/go.mod h1:U3/8D6R9+bVpX0ORZjV+3mU9pQ86m7h1lESgJbXNvXA=
github.com/aws/aws-sdk-go v1.42.32 h1:YRe7du5KeSa2jHKEccOSL6/1fNM1Qaj0JqSGTdmtaws=
github.com/aws/aws-sdk-go v1.42.32/go.mod h1:OGr6lGMAKGlG9CVrYnWYDKIyb829c6EVBRjxqjmPepc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

36
main.go
View File

@ -3,18 +3,16 @@ package main
import (
"flag"
"fmt"
"log"
"os"
"strings"
"github.com/apsdehal/go-logger"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
)
var l *log.Logger
var (
target string
acl string
@ -24,6 +22,7 @@ var (
keyid string
secret string
threads int
debug bool
)
const helpMessage string = `
@ -52,21 +51,33 @@ func flagsInit() {
flag.StringVar(&endpoint, "endpoint", envVar("AWS_DEFAULT_ENDPOINT", "ams3.digitaloceanspaces.com"), "S3 API endpoint.")
flag.StringVar(&keyid, "keyid", envVar("AWS_ACCESS_KEY_ID", ""), "API key ID.")
flag.StringVar(&secret, "secret", envVar("AWS_SECRET_ACCESS_KEY", ""), "API secret key.")
flag.IntVar(&threads, "threads", 5, "Number of concurrent threads used for upload.")
flag.IntVar(&threads, "threads", 20, "Number of concurrent threads used for upload.")
flag.BoolVar(&debug, "debug", false, "Show debug log messages.")
flag.Parse()
}
func main() {
l = log.New(os.Stderr, "", log.Lshortfile)
func logInit() *logger.Logger {
log, err := logger.New("go-s3up", 1, os.Stderr)
if err != nil {
panic(err) // Check for error
}
if debug {
log.SetLogLevel(logger.DebugLevel)
}
log.SetFormat("[%{module}] %{level}: %{message}")
return log
}
func main() {
flagsInit()
log := logInit()
if len(keyid) == 0 {
l.Println("Provide -keyid flag or AWS_ACCESS_KEY_ID env var")
log.Warning("Provide -keyid flag or AWS_ACCESS_KEY_ID env var")
os.Exit(1)
}
if len(secret) == 0 {
l.Println("Provide -secret flag or AWS_SECRET_ACCESS_KEY env var")
log.Warning("Provide -secret flag or AWS_SECRET_ACCESS_KEY env var")
os.Exit(1)
}
@ -76,12 +87,14 @@ func main() {
Region: aws.String(region),
}
log.DebugF("Connecting to: %s (region: %s)", endpoint, region)
newSession := session.New(s3Config)
uploader := s3manager.NewUploader(newSession)
file, err := os.Open(target)
if err != nil {
l.Println("Failed to open file: ", err)
log.ErrorF("Failed to open file: %v", err)
os.Exit(1)
}
@ -94,9 +107,10 @@ func main() {
u.Concurrency = threads
})
if err != nil {
l.Println("Failed to upload file: ", err)
log.ErrorF("Failed to upload file: %v", err)
os.Exit(1)
}
l.Println("Uploaded: ", aws.StringValue(&result.Location))
log.DebugF("ETag: %s", aws.StringValue(result.ETag))
log.InfoF("Uploaded: %s", aws.StringValue(&result.Location))
}