Merge pull request #36 from hdhog/master

Add flag for custom endpoint
This commit is contained in:
Thomas Boerger 2017-11-02 14:14:02 +01:00 committed by GitHub
commit 353adc52b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 5 deletions

17
aws.go
View File

@ -7,6 +7,7 @@ import (
"mime"
"os"
"path/filepath"
"strings"
"time"
"github.com/aws/aws-sdk-go/aws"
@ -27,10 +28,18 @@ type AWS struct {
}
func NewAWS(p *Plugin) AWS {
sess := session.New(&aws.Config{
Credentials: credentials.NewStaticCredentials(p.Key, p.Secret, ""),
Region: aws.String(p.Region),
})
sessCfg := &aws.Config{
Credentials: credentials.NewStaticCredentials(p.Key, p.Secret, ""),
S3ForcePathStyle: aws.Bool(p.PathStyle),
Region: aws.String(p.Region),
}
if p.Endpoint != "" {
sessCfg.Endpoint = &p.Endpoint
sessCfg.DisableSSL = aws.Bool(strings.HasPrefix(p.Endpoint, "http://"))
}
sess := session.New(sessCfg)
c := s3.New(sess)
cf := cloudfront.New(sess)
r := make([]string, 1, 1)

13
main.go
View File

@ -18,6 +18,11 @@ func main() {
app.Action = run
app.Version = fmt.Sprintf("1.1.0+%s", build)
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "endpoint",
Usage: "endpoint for the s3 connection",
EnvVar: "PLUGIN_ENDPOINT,S3_SYNC_ENDPOINT,S3_ENDPOINT",
},
cli.StringFlag{
Name: "access-key",
Usage: "aws access key",
@ -28,6 +33,11 @@ func main() {
Usage: "aws secret key",
EnvVar: "PLUGIN_SECRET_KEY,AWS_SECRET_ACCESS_KEY",
},
cli.BoolFlag{
Name: "path-style",
Usage: "use path style for bucket paths",
EnvVar: "PLUGIN_PATH_STYLE",
},
cli.StringFlag{
Name: "bucket",
Usage: "name of bucket",
@ -117,8 +127,9 @@ func run(c *cli.Context) error {
if c.String("env-file") != "" {
_ = godotenv.Load(c.String("env-file"))
}
plugin := Plugin{
Endpoint: c.String("endpoint"),
PathStyle: c.Bool("path-style"),
Key: c.String("access-key"),
Secret: c.String("secret-key"),
Bucket: c.String("bucket"),

View File

@ -9,6 +9,7 @@ import (
)
type Plugin struct {
Endpoint string
Key string
Secret string
Bucket string
@ -24,6 +25,7 @@ type Plugin struct {
Redirects map[string]string
CloudFrontDistribution string
DryRun bool
PathStyle bool
client AWS
jobs []job
}