Skip to content

Commit

Permalink
Merge pull request #3 from Thomascogez/s3-upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomascogez committed Jun 23, 2022
2 parents 3aa324e + 007e392 commit c5aa87b
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 30 deletions.
8 changes: 5 additions & 3 deletions dumper/pgDumper.go → dumper/dockerDumper.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@ import (
"sync"

"github.com/Thomascogez/dump-and-dumper/helpers"
upload "github.com/Thomascogez/dump-and-dumper/uploader"
"github.com/docker/docker/api/types"
)

type PgDumper struct{}
type DockerDumper struct {
Uploader upload.Uploader
}

func (pgDumper PgDumper) Dump(containers []types.Container) {
func (dockerDumper DockerDumper) Dump(containers []types.Container) {

var wg sync.WaitGroup

Expand All @@ -34,6 +37,5 @@ func (pgDumper PgDumper) Dump(containers []types.Container) {
wg.Done()
}(container)
}

wg.Wait()
}
6 changes: 0 additions & 6 deletions dumper/types.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
package dumper

import "github.com/docker/docker/api/types"

type Dumper interface {
Dump(container *types.Container)
}

const (
PG = "pg"
)
Expand Down
21 changes: 0 additions & 21 deletions main.go
Original file line number Diff line number Diff line change
@@ -1,25 +1,4 @@
package main

import (
"context"

"github.com/Thomascogez/dump-and-dumper/dumper"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
)

func main() {
cli, err := client.NewClientWithOpts(client.FromEnv)
if err != nil {
panic(err)
}

containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{})
if err != nil {
panic(err)
}

pgContainersToDump := dumper.FindContainersByTypes(containers, dumper.PG)

dumper.PgDumper{}.Dump(pgContainersToDump)
}
49 changes: 49 additions & 0 deletions uploader/s3.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package upload

import (
"fmt"
"os"

"github.com/Thomascogez/dump-and-dumper/helpers"
"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"
)

type S3Uploader struct {
SecretKeyID string
SecretKey string
Endpoint string
Region string
Bucket string
}

func (s3Uploader S3Uploader) Upload(filePath string, fileName string) {
s3ClientConfig := &aws.Config{
Endpoint: aws.String(s3Uploader.Endpoint),
Region: aws.String(s3Uploader.Region),
Credentials: credentials.NewStaticCredentials(
s3Uploader.SecretKeyID,
s3Uploader.SecretKey,
"",
),
}

sess, err := session.NewSession(s3ClientConfig)
helpers.CheckError(err)

uploader := s3manager.NewUploader(sess)
dumpFile, _ := os.Open(filePath)
defer dumpFile.Close()

result, err := uploader.Upload(&s3manager.UploadInput{
Bucket: aws.String(s3Uploader.Bucket),
Key: aws.String(fileName),
Body: dumpFile,
})

helpers.CheckError(err)

fmt.Printf("[dump & dumper] - file uploaded to, %s\n", result.Location)
}
5 changes: 5 additions & 0 deletions uploader/types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package upload

type Uploader interface {
Upload(filePath string, fileName string)
}

0 comments on commit c5aa87b

Please sign in to comment.