aboutsummaryrefslogtreecommitdiff
path: root/weed/remote_storage
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-08-24 22:30:06 -0700
committerChris Lu <chris.lu@gmail.com>2021-08-24 22:30:06 -0700
commit47d775cf68aed0cb342e9150b02509e0466541e6 (patch)
treee3a2d3f5aa5de15471ea94cb0872032774d4d936 /weed/remote_storage
parent6bab20d862cd2960dd4272cb7d6aa6abf8d6f097 (diff)
downloadseaweedfs-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.go38
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
+}