diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-08-24 22:30:06 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-08-24 22:30:06 -0700 |
| commit | 47d775cf68aed0cb342e9150b02509e0466541e6 (patch) | |
| tree | e3a2d3f5aa5de15471ea94cb0872032774d4d936 /weed/remote_storage | |
| parent | 6bab20d862cd2960dd4272cb7d6aa6abf8d6f097 (diff) | |
| download | seaweedfs-47d775cf68aed0cb342e9150b02509e0466541e6.tar.xz seaweedfs-47d775cf68aed0cb342e9150b02509e0466541e6.zip | |
cloud drive: add support for BackBlaze
Diffstat (limited to 'weed/remote_storage')
| -rw-r--r-- | weed/remote_storage/s3/backblaze.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/weed/remote_storage/s3/backblaze.go b/weed/remote_storage/s3/backblaze.go new file mode 100644 index 000000000..270997abe --- /dev/null +++ b/weed/remote_storage/s3/backblaze.go @@ -0,0 +1,38 @@ +package s3 + +import ( + "fmt" + "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" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/chrislusf/seaweedfs/weed/remote_storage" +) + +func init() { + remote_storage.RemoteStorageClientMakers["b2"] = new(BackBlazeRemoteStorageMaker) +} + +type BackBlazeRemoteStorageMaker struct{} + +func (s BackBlazeRemoteStorageMaker) Make(conf *filer_pb.RemoteConf) (remote_storage.RemoteStorageClient, error) { + client := &s3RemoteStorageClient{ + conf: conf, + } + config := &aws.Config{ + Endpoint: aws.String(conf.BackblazeEndpoint), + Region: aws.String("us-west-002"), + S3ForcePathStyle: aws.Bool(true), + } + if conf.BackblazeKeyId != "" && conf.BackblazeApplicationKey != "" { + config.Credentials = credentials.NewStaticCredentials(conf.BackblazeKeyId, conf.BackblazeApplicationKey, "") + } + + sess, err := session.NewSession(config) + if err != nil { + return nil, fmt.Errorf("create aws session: %v", err) + } + client.conn = s3.New(sess) + return client, nil +} |
