Browse Source

implement support for custom s3 endpoints

tags/v1.0.0
Kamal Nasser 6 years ago
parent
commit
69dacec7ad
3 changed files with 11 additions and 5 deletions
  1. +7
    -1
      cmd/cmd.go
  2. +2
    -2
      server/storage.go
  3. +2
    -2
      server/utils.go

+ 7
- 1
cmd/cmd.go View File

@@ -77,6 +77,12 @@ var globalFlags = []cli.Flag{
Usage: "s3|local", Usage: "s3|local",
Value: "", Value: "",
}, },
cli.StringFlag{
Name: "s3-endpoint",
Usage: "",
Value: "http://s3-eu-west-1.amazonaws.com",
EnvVar: "S3_ENDPOINT",
},
cli.StringFlag{ cli.StringFlag{
Name: "aws-access-key", Name: "aws-access-key",
Usage: "", Usage: "",
@@ -222,7 +228,7 @@ func New() *Cmd {
panic("secret-key not set.") panic("secret-key not set.")
} else if bucket := c.String("bucket"); bucket == "" { } else if bucket := c.String("bucket"); bucket == "" {
panic("bucket not set.") panic("bucket not set.")
} else if storage, err := server.NewS3Storage(accessKey, secretKey, bucket); err != nil {
} else if storage, err := server.NewS3Storage(accessKey, secretKey, bucket, c.String("s3-endpoint")); err != nil {
panic(err) panic(err)
} else { } else {
options = append(options, server.UseStorage(storage)) options = append(options, server.UseStorage(storage))


+ 2
- 2
server/storage.go View File

@@ -108,8 +108,8 @@ type S3Storage struct {
bucket *s3.Bucket bucket *s3.Bucket
} }


func NewS3Storage(accessKey, secretKey, bucketName string) (*S3Storage, error) {
bucket, err := getBucket(accessKey, secretKey, bucketName)
func NewS3Storage(accessKey, secretKey, bucketName, endpoint string) (*S3Storage, error) {
bucket, err := getBucket(accessKey, secretKey, bucketName, endpoint)
if err != nil { if err != nil {
return nil, err return nil, err
} }


+ 2
- 2
server/utils.go View File

@@ -37,7 +37,7 @@ import (
"github.com/golang/gddo/httputil/header" "github.com/golang/gddo/httputil/header"
) )


func getBucket(accessKey, secretKey, bucket string) (*s3.Bucket, error) {
func getBucket(accessKey, secretKey, bucket, endpoint string) (*s3.Bucket, error) {
auth, err := aws.GetAuth(accessKey, secretKey, "", time.Time{}) auth, err := aws.GetAuth(accessKey, secretKey, "", time.Time{})
if err != nil { if err != nil {
return nil, err return nil, err
@@ -46,7 +46,7 @@ func getBucket(accessKey, secretKey, bucket string) (*s3.Bucket, error) {
var EUWestWithoutHTTPS = aws.Region{ var EUWestWithoutHTTPS = aws.Region{
Name: "eu-west-1", Name: "eu-west-1",
EC2Endpoint: "https://ec2.eu-west-1.amazonaws.com", EC2Endpoint: "https://ec2.eu-west-1.amazonaws.com",
S3Endpoint: "http://s3-eu-west-1.amazonaws.com",
S3Endpoint: endpoint,
S3BucketEndpoint: "", S3BucketEndpoint: "",
S3LocationConstraint: true, S3LocationConstraint: true,
S3LowercaseBucket: true, S3LowercaseBucket: true,


Loading…
Cancel
Save