mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 11:35:21 +08:00
s3: Add RackCorp object storage to providers
This commit is contained in:
parent
a7a8372976
commit
b16f603c51
|
@ -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)
|
||||||
|
|
200
backend/s3/s3.go
200
backend/s3/s3.go
|
@ -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 {
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user