diff --git a/backend/s3/s3.go b/backend/s3/s3.go index 6071c44c7..5054c62a2 100644 --- a/backend/s3/s3.go +++ b/backend/s3/s3.go @@ -84,6 +84,9 @@ func init() { }, { Value: "IBMCOS", Help: "IBM COS S3", + }, { + Value: "Lyve", + Help: "Seagate Lyve Cloud", }, { Value: "Minio", Help: "Minio Object Storage", @@ -764,6 +767,10 @@ func init() { Value: "localhost:8333", Help: "SeaweedFS S3 localhost", Provider: "SeaweedFS", + }, { + Value: "s3.us-east-1.lyvecloud.seagate.com", + Help: "Seagate Lyve Cloud US East 1", + Provider: "Lyve", }, { Value: "s3.wasabisys.com", Help: "Wasabi US East endpoint", @@ -1944,6 +1951,8 @@ func setQuirks(opt *Options) { virtualHostStyle = false urlEncodeListings = false useMultipartEtag = false // untested + case "Lyve": + useMultipartEtag = false // Lyve seems to calculate multipart Etags differently from AWS case "Minio": virtualHostStyle = false case "Netease": diff --git a/docs/content/_index.md b/docs/content/_index.md index ce8e932f8..a060a76da 100644 --- a/docs/content/_index.md +++ b/docs/content/_index.md @@ -149,6 +149,7 @@ WebDAV or S3, that work out of the box.) {{< provider name="rsync.net" home="https://rsync.net/products/rclone.html" config="/sftp/#rsync-net" >}} {{< provider name="Scaleway" home="https://www.scaleway.com/object-storage/" config="/s3/#scaleway" >}} {{< provider name="Seafile" home="https://www.seafile.com/" config="/seafile/" >}} +{{< provider name="Seagate Lyve Cloud" home="https://www.seagate.com/gb/en/services/cloud/storage/" config="/s3/#lyve" >}} {{< provider name="SeaweedFS" home="https://github.com/chrislusf/seaweedfs/" config="/s3/#seaweedfs" >}} {{< provider name="SFTP" home="https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol" config="/sftp/" >}} {{< provider name="Sia" home="https://sia.tech/" config="/sia/" >}} diff --git a/docs/content/s3.md b/docs/content/s3.md index c435107dd..0bbfd1be8 100644 --- a/docs/content/s3.md +++ b/docs/content/s3.md @@ -17,6 +17,7 @@ The S3 backend can be used with a number of different providers: {{< provider name="Minio" home="https://www.minio.io/" config="/s3/#minio" >}} {{< provider name="RackCorp Object Storage" home="https://www.rackcorp.com/" config="/s3/#RackCorp" >}} {{< provider name="Scaleway" home="https://www.scaleway.com/en/object-storage/" config="/s3/#scaleway" >}} +{{< provider name="Seagate Lyve Cloud" home="https://www.seagate.com/gb/en/services/cloud/storage/" config="/s3/#lyve" >}} {{< provider name="SeaweedFS" home="https://github.com/chrislusf/seaweedfs/" config="/s3/#seaweedfs" >}} {{< provider name="StackPath" home="https://www.stackpath.com/products/object-storage/" config="/s3/#stackpath" >}} {{< provider name="Storj" home="https://storj.io/" config="/s3/#storj" >}} @@ -2409,6 +2410,143 @@ server_side_encryption = storage_class = ``` +### Seagate Lyve Cloud {#lyve} + +[Seagate Lyve Cloud](https://www.seagate.com/gb/en/services/cloud/storage/) is an S3 +compatible object storage platform from [Seagate](https://seagate.com/) intended for enterprise use. + +Here is a config run through for a remote called `remote` - you may +choose a different name of course. Note that to create an access key +and secret key you will need to create a service account first. + +``` +$ rclone config +No remotes found, make a new one? +n) New remote +s) Set configuration password +q) Quit config +n/s/q> n +name> remote +``` + +Choose `s3` backend + +``` +Type of storage to configure. +Choose a number from below, or type in your own value. +[snip] +XX / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, RackCorp, SeaweedFS, and Tencent COS + \ (s3) +[snip] +Storage> s3 +``` + +Choose `Lyve` as S3 provider + +``` +Choose your S3 provider. +Choose a number from below, or type in your own value. +Press Enter to leave empty. +[snip] +XX / Seagate Lyve Cloud + \ (Lyve) +[snip] +provider> Lyve +``` + +Take the default (just press enter) to enter access key and secret in the config file. + +``` +Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars). +Only applies if access_key_id and secret_access_key is blank. +Choose a number from below, or type in your own boolean value (true or false). +Press Enter for the default (false). + 1 / Enter AWS credentials in the next step. + \ (false) + 2 / Get AWS credentials from the environment (env vars or IAM). + \ (true) +env_auth> +``` + +``` +AWS Access Key ID. +Leave blank for anonymous access or runtime credentials. +Enter a value. Press Enter to leave empty. +access_key_id> XXX +``` + +``` +AWS Secret Access Key (password). +Leave blank for anonymous access or runtime credentials. +Enter a value. Press Enter to leave empty. +secret_access_key> YYY +``` + +Leave region blank + +``` +Region to connect to. +Leave blank if you are using an S3 clone and you don't have a region. +Choose a number from below, or type in your own value. +Press Enter to leave empty. + / Use this if unsure. + 1 | Will use v4 signatures and an empty region. + \ () + / Use this only if v4 signatures don't work. + 2 | E.g. pre Jewel/v10 CEPH. + \ (other-v2-signature) +region> +``` + +Choose an endpoint from the list + +``` +Endpoint for S3 API. +Required when using an S3 clone. +Choose a number from below, or type in your own value. +Press Enter to leave empty. + 1 / Seagate Lyve Cloud US East 1 + \ (s3.us-east-1.lyvecloud.seagate.com) +endpoint> 1 +``` + +Leave location constraing blank + +``` +Location constraint - must be set to match the Region. +Leave blank if not sure. Used when creating buckets only. +Enter a value. Press Enter to leave empty. +location_constraint> +``` + +Choose default ACL (`private`). + +``` +Canned ACL used when creating buckets and storing or copying objects. +This ACL is used for creating objects and if bucket_acl isn't set, for creating buckets too. +For more info visit https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl +Note that this ACL is applied when server-side copying objects as S3 +doesn't copy the ACL from the source but rather writes a fresh one. +Choose a number from below, or type in your own value. +Press Enter to leave empty. + / Owner gets FULL_CONTROL. + 1 | No one else has access rights (default). + \ (private) +[snip] +acl> +``` + +And the config file should end up looking like this: + +``` +[remote] +type = s3 +provider = Lyve +access_key_id = XXX +secret_access_key = YYY +endpoint = s3.us-east-1.lyvecloud.seagate.com +``` + ### SeaweedFS [SeaweedFS](https://github.com/chrislusf/seaweedfs/) is a distributed storage system for