s3: Add RackCorp object storage to providers

This commit is contained in:
bbabich 2021-11-09 22:46:58 +11:00 committed by GitHub
parent a7a8372976
commit b16f603c51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 222 additions and 4 deletions

View File

@ -59,6 +59,7 @@ Rclone *("rsync for cloud storage")* is a command-line program to sync files and
* put.io [:page_facing_up:](https://rclone.org/putio/) * put.io [:page_facing_up:](https://rclone.org/putio/)
* QingStor [:page_facing_up:](https://rclone.org/qingstor/) * QingStor [:page_facing_up:](https://rclone.org/qingstor/)
* Rackspace Cloud Files [:page_facing_up:](https://rclone.org/swift/) * Rackspace Cloud Files [:page_facing_up:](https://rclone.org/swift/)
* RackCorp Object Storage [:page_facing_up:](https://rclone.org/s3/#RackCorp)
* Scaleway [:page_facing_up:](https://rclone.org/s3/#scaleway) * Scaleway [:page_facing_up:](https://rclone.org/s3/#scaleway)
* Seafile [:page_facing_up:](https://rclone.org/seafile/) * Seafile [:page_facing_up:](https://rclone.org/seafile/)
* SeaweedFS [:page_facing_up:](https://rclone.org/s3/#seaweedfs) * SeaweedFS [:page_facing_up:](https://rclone.org/s3/#seaweedfs)

View File

@ -58,7 +58,7 @@ import (
func init() { func init() {
fs.Register(&fs.RegInfo{ fs.Register(&fs.RegInfo{
Name: "s3", Name: "s3",
Description: "Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, SeaweedFS, and Tencent COS", Description: "Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, RackCorp, SeaweedFS, and Tencent COS",
NewFs: NewFs, NewFs: NewFs,
CommandHelp: commandHelp, CommandHelp: commandHelp,
Options: []fs.Option{{ Options: []fs.Option{{
@ -90,6 +90,9 @@ func init() {
}, { }, {
Value: "Netease", Value: "Netease",
Help: "Netease Object Storage (NOS)", Help: "Netease Object Storage (NOS)",
}, {
Value: "RackCorp",
Help: "RackCorp Object Storage",
}, { }, {
Value: "Scaleway", Value: "Scaleway",
Help: "Scaleway Object Storage", Help: "Scaleway Object Storage",
@ -209,6 +212,68 @@ func init() {
Value: "us-gov-west-1", Value: "us-gov-west-1",
Help: "AWS GovCloud (US) Region.\nNeeds location constraint us-gov-west-1.", Help: "AWS GovCloud (US) Region.\nNeeds location constraint us-gov-west-1.",
}}, }},
}, {
Name: "region",
Help: "region - the location where your bucket will be created and your data stored.\n",
Provider: "RackCorp",
Examples: []fs.OptionExample{{
Value: "global",
Help: "Global CDN (All locations) Region",
}, {
Value: "au",
Help: "Australia (All states)",
}, {
Value: "au-nsw",
Help: "NSW (Australia) Region",
}, {
Value: "au-qld",
Help: "QLD (Australia) Region",
}, {
Value: "au-vic",
Help: "VIC (Australia) Region",
}, {
Value: "au-wa",
Help: "Perth (Australia) Region",
}, {
Value: "ph",
Help: "Manila (Philippines) Region",
}, {
Value: "th",
Help: "Bangkok (Thailand) Region",
}, {
Value: "hk",
Help: "HK (Hong Kong) Region",
}, {
Value: "mn",
Help: "Ulaanbaatar (Mongolia) Region",
}, {
Value: "kg",
Help: "Bishkek (Kyrgyzstan) Region",
}, {
Value: "id",
Help: "Jakarta (Indonesia) Region",
}, {
Value: "jp",
Help: "Tokyo (Japan) Region",
}, {
Value: "sg",
Help: "SG (Singapore) Region",
}, {
Value: "de",
Help: "Frankfurt (Germany) Region",
}, {
Value: "us",
Help: "USA (AnyCast) Region",
}, {
Value: "us-east-1",
Help: "New York (USA) Region",
}, {
Value: "us-west-1",
Help: "Freemont (USA) Region",
}, {
Value: "nz",
Help: "Auckland (New Zealand) Region",
}},
}, { }, {
Name: "region", Name: "region",
Help: "Region to connect to.", Help: "Region to connect to.",
@ -223,7 +288,7 @@ func init() {
}, { }, {
Name: "region", Name: "region",
Help: "Region to connect to.\n\nLeave blank if you are using an S3 clone and you don't have a region.", Help: "Region to connect to.\n\nLeave blank if you are using an S3 clone and you don't have a region.",
Provider: "!AWS,Alibaba,Scaleway,TencentCOS", Provider: "!AWS,Alibaba,RackCorp,Scaleway,TencentCOS",
Examples: []fs.OptionExample{{ Examples: []fs.OptionExample{{
Value: "", Value: "",
Help: "Use this if unsure.\nWill use v4 signatures and an empty region.", Help: "Use this if unsure.\nWill use v4 signatures and an empty region.",
@ -595,10 +660,73 @@ func init() {
Value: "cos.accelerate.myqcloud.com", Value: "cos.accelerate.myqcloud.com",
Help: "Use Tencent COS Accelerate Endpoint", Help: "Use Tencent COS Accelerate Endpoint",
}}, }},
}, {
// RackCorp endpoints: https://www.rackcorp.com/storage/s3storage
Name: "endpoint",
Help: "Endpoint for RackCorp Object Storage.",
Provider: "RackCorp",
Examples: []fs.OptionExample{{
Value: "s3.rackcorp.com",
Help: "Global (AnyCast) Endpoint",
}, {
Value: "au.s3.rackcorp.com",
Help: "Australia (Anycast) Endpoint",
}, {
Value: "au-nsw.s3.rackcorp.com",
Help: "Sydney (Australia) Endpoint",
}, {
Value: "au-qld.s3.rackcorp.com",
Help: "Brisbane (Australia) Endpoint",
}, {
Value: "au-vic.s3.rackcorp.com",
Help: "Melbourne (Australia) Endpoint",
}, {
Value: "au-wa.s3.rackcorp.com",
Help: "Perth (Australia) Endpoint",
}, {
Value: "ph.s3.rackcorp.com",
Help: "Manila (Philippines) Endpoint",
}, {
Value: "th.s3.rackcorp.com",
Help: "Bangkok (Thailand) Endpoint",
}, {
Value: "hk.s3.rackcorp.com",
Help: "HK (Hong Kong) Endpoint",
}, {
Value: "mn.s3.rackcorp.com",
Help: "Ulaanbaatar (Mongolia) Endpoint",
}, {
Value: "kg.s3.rackcorp.com",
Help: "Bishkek (Kyrgyzstan) Endpoint",
}, {
Value: "id.s3.rackcorp.com",
Help: "Jakarta (Indonesia) Endpoint",
}, {
Value: "jp.s3.rackcorp.com",
Help: "Tokyo (Japan) Endpoint",
}, {
Value: "sg.s3.rackcorp.com",
Help: "SG (Singapore) Endpoint",
}, {
Value: "de.s3.rackcorp.com",
Help: "Frankfurt (Germany) Endpoint",
}, {
Value: "us.s3.rackcorp.com",
Help: "USA (AnyCast) Endpoint",
}, {
Value: "us-east-1.s3.rackcorp.com",
Help: "New York (USA) Endpoint",
}, {
Value: "us-west-1.s3.rackcorp.com",
Help: "Freemont (USA) Endpoint",
}, {
Value: "nz.s3.rackcorp.com",
Help: "Auckland (New Zealand) Endpoint",
}},
}, { }, {
Name: "endpoint", Name: "endpoint",
Help: "Endpoint for S3 API.\n\nRequired when using an S3 clone.", Help: "Endpoint for S3 API.\n\nRequired when using an S3 clone.",
Provider: "!AWS,IBMCOS,TencentCOS,Alibaba,Scaleway,StackPath", Provider: "!AWS,IBMCOS,TencentCOS,Alibaba,Scaleway,StackPath,RackCorp",
Examples: []fs.OptionExample{{ Examples: []fs.OptionExample{{
Value: "objects-us-east-1.dream.io", Value: "objects-us-east-1.dream.io",
Help: "Dream Objects endpoint", Help: "Dream Objects endpoint",
@ -817,10 +945,72 @@ func init() {
Value: "tor01-flex", Value: "tor01-flex",
Help: "Toronto Flex", Help: "Toronto Flex",
}}, }},
}, {
Name: "location_constraint",
Help: "Location constraint - the location where your bucket will be located and your data stored.\n",
Provider: "RackCorp",
Examples: []fs.OptionExample{{
Value: "global",
Help: "Global CDN Region",
}, {
Value: "au",
Help: "Australia (All locations)",
}, {
Value: "au-nsw",
Help: "NSW (Australia) Region",
}, {
Value: "au-qld",
Help: "QLD (Australia) Region",
}, {
Value: "au-vic",
Help: "VIC (Australia) Region",
}, {
Value: "au-wa",
Help: "Perth (Australia) Region",
}, {
Value: "ph",
Help: "Manila (Philippines) Region",
}, {
Value: "th",
Help: "Bangkok (Thailand) Region",
}, {
Value: "hk",
Help: "HK (Hong Kong) Region",
}, {
Value: "mn",
Help: "Ulaanbaatar (Mongolia) Region",
}, {
Value: "kg",
Help: "Bishkek (Kyrgyzstan) Region",
}, {
Value: "id",
Help: "Jakarta (Indonesia) Region",
}, {
Value: "jp",
Help: "Tokyo (Japan) Region",
}, {
Value: "sg",
Help: "SG (Singapore) Region",
}, {
Value: "de",
Help: "Frankfurt (Germany) Region",
}, {
Value: "us",
Help: "USA (AnyCast) Region",
}, {
Value: "us-east-1",
Help: "New York (USA) Region",
}, {
Value: "us-west-1",
Help: "Freemont (USA) Region",
}, {
Value: "nz",
Help: "Auckland (New Zealand) Region",
}},
}, { }, {
Name: "location_constraint", Name: "location_constraint",
Help: "Location constraint - must be set to match the Region.\n\nLeave blank if not sure. Used when creating buckets only.", Help: "Location constraint - must be set to match the Region.\n\nLeave blank if not sure. Used when creating buckets only.",
Provider: "!AWS,IBMCOS,Alibaba,Scaleway,StackPath,TencentCOS", Provider: "!AWS,IBMCOS,Alibaba,RackCorp,Scaleway,StackPath,TencentCOS",
}, { }, {
Name: "acl", Name: "acl",
Help: `Canned ACL used when creating buckets and storing or copying objects. Help: `Canned ACL used when creating buckets and storing or copying objects.
@ -1723,6 +1913,8 @@ func setQuirks(opt *Options) {
case "Netease": case "Netease":
listObjectsV2 = false // untested listObjectsV2 = false // untested
urlEncodeListings = false urlEncodeListings = false
case "RackCorp":
// No quirks
case "Scaleway": case "Scaleway":
// Scaleway can only have 1000 parts in an upload // Scaleway can only have 1000 parts in an upload
if opt.MaxUploadParts > 1000 { if opt.MaxUploadParts > 1000 {

View File

@ -15,6 +15,7 @@ The S3 backend can be used with a number of different providers:
{{< provider name="Dreamhost" home="https://www.dreamhost.com/cloud/storage/" config="/s3/#dreamhost" >}} {{< provider name="Dreamhost" home="https://www.dreamhost.com/cloud/storage/" config="/s3/#dreamhost" >}}
{{< provider name="IBM COS S3" home="http://www.ibm.com/cloud/object-storage" config="/s3/#ibm-cos-s3" >}} {{< provider name="IBM COS S3" home="http://www.ibm.com/cloud/object-storage" config="/s3/#ibm-cos-s3" >}}
{{< provider name="Minio" home="https://www.minio.io/" config="/s3/#minio" >}} {{< 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="Scaleway" home="https://www.scaleway.com/en/object-storage/" config="/s3/#scaleway" >}}
{{< provider name="SeaweedFS" home="https://github.com/chrislusf/seaweedfs/" config="/s3/#seaweedfs" >}} {{< 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="StackPath" home="https://www.stackpath.com/products/object-storage/" config="/s3/#stackpath" >}}
@ -2346,6 +2347,30 @@ So once set up, for example, to copy files into a bucket
rclone copy /path/to/files minio:bucket rclone copy /path/to/files minio:bucket
``` ```
### RackCorp {#RackCorp}
[RackCorp Object Storage](https://www.rackcorp.com/storage/s3storage) is an S3 compatible object storage platform from your friendly cloud provider RackCorp.
The service is fast, reliable, well priced and located in many strategic locations unserviced by others, to ensure you can maintain data sovereignty.
Before you can use RackCorp Object Storage, you'll need to "[sign up](https://www.rackcorp.com/signup)" for an account on our "[portal](https://portal.rackcorp.com)".
Next you can create an `access key`, a `secret key` and `buckets`, in your location of choice with ease.
These details are required for the next steps of configuration, when `rclone config` asks for your `access_key_id` and `secret_access_key`.
Your config should end up looking a bit like this:
```
[RCS3-demo-config]
type = s3
provider = RackCorp
env_auth = true
access_key_id = YOURACCESSKEY
secret_access_key = YOURSECRETACCESSKEY
region = au-nsw
endpoint = s3.rackcorp.com
location_constraint = au-nsw
```
### Scaleway ### Scaleway
[Scaleway](https://www.scaleway.com/object-storage/) The Object Storage platform allows you to store anything from backups, logs and web assets to documents and photos. [Scaleway](https://www.scaleway.com/object-storage/) The Object Storage platform allows you to store anything from backups, logs and web assets to documents and photos.