mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 11:21:10 +08:00
s3: add Linode provider
This commit is contained in:
parent
77ea22ac5b
commit
eb3082a1eb
|
@ -53,6 +53,7 @@ Rclone *("rsync for cloud storage")* is a command-line program to sync files and
|
||||||
* Koofr [:page_facing_up:](https://rclone.org/koofr/)
|
* Koofr [:page_facing_up:](https://rclone.org/koofr/)
|
||||||
* Leviia Object Storage [:page_facing_up:](https://rclone.org/s3/#leviia)
|
* Leviia Object Storage [:page_facing_up:](https://rclone.org/s3/#leviia)
|
||||||
* Liara Object Storage [:page_facing_up:](https://rclone.org/s3/#liara-object-storage)
|
* Liara Object Storage [:page_facing_up:](https://rclone.org/s3/#liara-object-storage)
|
||||||
|
* Linode Object Storage [:page_facing_up:](https://rclone.org/s3/#linode)
|
||||||
* Mail.ru Cloud [:page_facing_up:](https://rclone.org/mailru/)
|
* Mail.ru Cloud [:page_facing_up:](https://rclone.org/mailru/)
|
||||||
* Memset Memstore [:page_facing_up:](https://rclone.org/swift/)
|
* Memset Memstore [:page_facing_up:](https://rclone.org/swift/)
|
||||||
* Mega [:page_facing_up:](https://rclone.org/mega/)
|
* Mega [:page_facing_up:](https://rclone.org/mega/)
|
||||||
|
|
|
@ -121,6 +121,9 @@ var providerOption = fs.Option{
|
||||||
}, {
|
}, {
|
||||||
Value: "Liara",
|
Value: "Liara",
|
||||||
Help: "Liara Object Storage",
|
Help: "Liara Object Storage",
|
||||||
|
}, {
|
||||||
|
Value: "Linode",
|
||||||
|
Help: "Linode Object Storage",
|
||||||
}, {
|
}, {
|
||||||
Value: "Minio",
|
Value: "Minio",
|
||||||
Help: "Minio Object Storage",
|
Help: "Minio Object Storage",
|
||||||
|
@ -516,7 +519,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,ArvanCloud,ChinaMobile,Cloudflare,IONOS,Petabox,Liara,Qiniu,RackCorp,Scaleway,Storj,Synology,TencentCOS,HuaweiOBS,IDrive",
|
Provider: "!AWS,Alibaba,ArvanCloud,ChinaMobile,Cloudflare,IONOS,Petabox,Liara,Linode,Qiniu,RackCorp,Scaleway,Storj,Synology,TencentCOS,HuaweiOBS,IDrive",
|
||||||
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.",
|
||||||
|
@ -883,6 +886,42 @@ func init() {
|
||||||
Value: "storage.iran.liara.space",
|
Value: "storage.iran.liara.space",
|
||||||
Help: "The default endpoint\nIran",
|
Help: "The default endpoint\nIran",
|
||||||
}},
|
}},
|
||||||
|
}, {
|
||||||
|
// Linode endpoints: https://www.linode.com/docs/products/storage/object-storage/guides/urls/#cluster-url-s3-endpoint
|
||||||
|
Name: "endpoint",
|
||||||
|
Help: "Endpoint for Linode Object Storage API.",
|
||||||
|
Provider: "Linode",
|
||||||
|
Examples: []fs.OptionExample{{
|
||||||
|
Value: "us-southeast-1.linodeobjects.com",
|
||||||
|
Help: "Atlanta, GA (USA), us-southeast-1",
|
||||||
|
}, {
|
||||||
|
Value: "us-ord-1.linodeobjects.com",
|
||||||
|
Help: "Chicago, IL (USA), us-ord-1",
|
||||||
|
}, {
|
||||||
|
Value: "eu-central-1.linodeobjects.com",
|
||||||
|
Help: "Frankfurt (Germany), eu-central-1",
|
||||||
|
}, {
|
||||||
|
Value: "it-mil-1.linodeobjects.com",
|
||||||
|
Help: "Milan (Italy), it-mil-1",
|
||||||
|
}, {
|
||||||
|
Value: "us-east-1.linodeobjects.com",
|
||||||
|
Help: "Newark, NJ (USA), us-east-1",
|
||||||
|
}, {
|
||||||
|
Value: "fr-par-1.linodeobjects.com",
|
||||||
|
Help: "Paris (France), fr-par-1",
|
||||||
|
}, {
|
||||||
|
Value: "us-sea-1.linodeobjects.com",
|
||||||
|
Help: "Seattle, WA (USA), us-sea-1",
|
||||||
|
}, {
|
||||||
|
Value: "ap-south-1.linodeobjects.com",
|
||||||
|
Help: "Singapore ap-south-1",
|
||||||
|
}, {
|
||||||
|
Value: "se-sto-1.linodeobjects.com",
|
||||||
|
Help: "Stockholm (Sweden), se-sto-1",
|
||||||
|
}, {
|
||||||
|
Value: "us-iad-1.linodeobjects.com",
|
||||||
|
Help: "Washington, DC, (USA), us-iad-1",
|
||||||
|
}},
|
||||||
}, {
|
}, {
|
||||||
// oss endpoints: https://help.aliyun.com/document_detail/31837.html
|
// oss endpoints: https://help.aliyun.com/document_detail/31837.html
|
||||||
Name: "endpoint",
|
Name: "endpoint",
|
||||||
|
@ -1235,7 +1274,7 @@ func init() {
|
||||||
}, {
|
}, {
|
||||||
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,ArvanCloud,IBMCOS,IDrive,IONOS,TencentCOS,HuaweiOBS,Alibaba,ChinaMobile,GCS,Liara,Scaleway,StackPath,Storj,Synology,RackCorp,Qiniu,Petabox",
|
Provider: "!AWS,ArvanCloud,IBMCOS,IDrive,IONOS,TencentCOS,HuaweiOBS,Alibaba,ChinaMobile,GCS,Liara,Linode,Scaleway,StackPath,Storj,Synology,RackCorp,Qiniu,Petabox",
|
||||||
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",
|
||||||
|
@ -1723,7 +1762,7 @@ func init() {
|
||||||
}, {
|
}, {
|
||||||
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,Alibaba,ArvanCloud,HuaweiOBS,ChinaMobile,Cloudflare,IBMCOS,IDrive,IONOS,Leviia,Liara,Qiniu,RackCorp,Scaleway,StackPath,Storj,TencentCOS,Petabox",
|
Provider: "!AWS,Alibaba,ArvanCloud,HuaweiOBS,ChinaMobile,Cloudflare,IBMCOS,IDrive,IONOS,Leviia,Liara,Linode,Qiniu,RackCorp,Scaleway,StackPath,Storj,TencentCOS,Petabox",
|
||||||
}, {
|
}, {
|
||||||
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.
|
||||||
|
@ -3015,6 +3054,8 @@ func setQuirks(opt *Options) {
|
||||||
virtualHostStyle = false
|
virtualHostStyle = false
|
||||||
urlEncodeListings = false
|
urlEncodeListings = false
|
||||||
useMultipartEtag = false
|
useMultipartEtag = false
|
||||||
|
case "Linode":
|
||||||
|
// No quirks
|
||||||
case "LyveCloud":
|
case "LyveCloud":
|
||||||
useMultipartEtag = false // LyveCloud seems to calculate multipart Etags differently from AWS
|
useMultipartEtag = false // LyveCloud seems to calculate multipart Etags differently from AWS
|
||||||
case "Minio":
|
case "Minio":
|
||||||
|
|
|
@ -138,6 +138,7 @@ WebDAV or S3, that work out of the box.)
|
||||||
{{< provider name="Koofr" home="https://koofr.eu/" config="/koofr/" >}}
|
{{< provider name="Koofr" home="https://koofr.eu/" config="/koofr/" >}}
|
||||||
{{< provider name="Leviia Object Storage" home="https://www.leviia.com/object-storage" config="/s3/#leviia" >}}
|
{{< provider name="Leviia Object Storage" home="https://www.leviia.com/object-storage" config="/s3/#leviia" >}}
|
||||||
{{< provider name="Liara Object Storage" home="https://liara.ir/landing/object-storage" config="/s3/#liara-object-storage" >}}
|
{{< provider name="Liara Object Storage" home="https://liara.ir/landing/object-storage" config="/s3/#liara-object-storage" >}}
|
||||||
|
{{< provider name="Linode Object Storage" home="https://www.linode.com/products/object-storage/" config="/s3/#linode" >}}
|
||||||
{{< provider name="Mail.ru Cloud" home="https://cloud.mail.ru/" config="/mailru/" >}}
|
{{< provider name="Mail.ru Cloud" home="https://cloud.mail.ru/" config="/mailru/" >}}
|
||||||
{{< provider name="Memset Memstore" home="https://www.memset.com/cloud/storage/" config="/swift/" >}}
|
{{< provider name="Memset Memstore" home="https://www.memset.com/cloud/storage/" config="/swift/" >}}
|
||||||
{{< provider name="Mega" home="https://mega.nz/" config="/mega/" >}}
|
{{< provider name="Mega" home="https://mega.nz/" config="/mega/" >}}
|
||||||
|
|
|
@ -22,8 +22,9 @@ The S3 backend can be used with a number of different providers:
|
||||||
{{< 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="IDrive e2" home="https://www.idrive.com/e2/?refer=rclone" config="/s3/#idrive-e2" >}}
|
{{< provider name="IDrive e2" home="https://www.idrive.com/e2/?refer=rclone" config="/s3/#idrive-e2" >}}
|
||||||
{{< provider name="IONOS Cloud" home="https://cloud.ionos.com/storage/object-storage" config="/s3/#ionos" >}}
|
{{< provider name="IONOS Cloud" home="https://cloud.ionos.com/storage/object-storage" config="/s3/#ionos" >}}
|
||||||
{{< provider name="Leviia Object Storage" home="https://www.leviia.com/object-storage/" config="/s3/#leviia" >}}
|
{{< provider name="Leviia Object Storage" home="https://www.leviia.com/object-storage/" config="/s3/#leviia" >}}
|
||||||
{{< provider name="Liara Object Storage" home="https://liara.ir/landing/object-storage" config="/s3/#liara-cloud" >}}
|
{{< provider name="Liara Object Storage" home="https://liara.ir/landing/object-storage" config="/s3/#liara-cloud" >}}
|
||||||
|
{{< provider name="Linode Object Storage" home="https://www.linode.com/products/object-storage/" config="/s3/#linode" >}}
|
||||||
{{< provider name="Minio" home="https://www.minio.io/" config="/s3/#minio" >}}
|
{{< provider name="Minio" home="https://www.minio.io/" config="/s3/#minio" >}}
|
||||||
{{< provider name="Petabox" home="https://petabox.io/" config="/s3/#petabox" >}}
|
{{< provider name="Petabox" home="https://petabox.io/" config="/s3/#petabox" >}}
|
||||||
{{< provider name="Qiniu Cloud Object Storage (Kodo)" home="https://www.qiniu.com/en/products/kodo" config="/s3/#qiniu" >}}
|
{{< provider name="Qiniu Cloud Object Storage (Kodo)" home="https://www.qiniu.com/en/products/kodo" config="/s3/#qiniu" >}}
|
||||||
|
@ -5403,6 +5404,7 @@ Name Type
|
||||||
==== ====
|
==== ====
|
||||||
leviia s3
|
leviia s3
|
||||||
```
|
```
|
||||||
|
|
||||||
### Liara {#liara-cloud}
|
### Liara {#liara-cloud}
|
||||||
|
|
||||||
Here is an example of making a [Liara Object Storage](https://liara.ir/landing/object-storage)
|
Here is an example of making a [Liara Object Storage](https://liara.ir/landing/object-storage)
|
||||||
|
@ -5504,6 +5506,139 @@ server_side_encryption =
|
||||||
storage_class =
|
storage_class =
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Linode {#linode}
|
||||||
|
|
||||||
|
Here is an example of making a [Linode Object Storage](https://www.linode.com/products/object-storage/)
|
||||||
|
configuration. First run:
|
||||||
|
|
||||||
|
rclone config
|
||||||
|
|
||||||
|
This will guide you through an interactive setup process.
|
||||||
|
|
||||||
|
```
|
||||||
|
No remotes found, make a new one?
|
||||||
|
n) New remote
|
||||||
|
s) Set configuration password
|
||||||
|
q) Quit config
|
||||||
|
n/s/q> n
|
||||||
|
|
||||||
|
Enter name for new remote.
|
||||||
|
name> linode
|
||||||
|
|
||||||
|
Option Storage.
|
||||||
|
Type of storage to configure.
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
[snip]
|
||||||
|
X / Amazon S3 Compliant Storage Providers including AWS, ...Linode, ...and others
|
||||||
|
\ (s3)
|
||||||
|
[snip]
|
||||||
|
Storage> s3
|
||||||
|
|
||||||
|
Option provider.
|
||||||
|
Choose your S3 provider.
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
Press Enter to leave empty.
|
||||||
|
[snip]
|
||||||
|
XX / Linode Object Storage
|
||||||
|
\ (Linode)
|
||||||
|
[snip]
|
||||||
|
provider> Linode
|
||||||
|
|
||||||
|
Option env_auth.
|
||||||
|
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>
|
||||||
|
|
||||||
|
Option access_key_id.
|
||||||
|
AWS Access Key ID.
|
||||||
|
Leave blank for anonymous access or runtime credentials.
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
access_key_id> ACCESS_KEY
|
||||||
|
|
||||||
|
Option secret_access_key.
|
||||||
|
AWS Secret Access Key (password).
|
||||||
|
Leave blank for anonymous access or runtime credentials.
|
||||||
|
Enter a value. Press Enter to leave empty.
|
||||||
|
secret_access_key> SECRET_ACCESS_KEY
|
||||||
|
|
||||||
|
Option endpoint.
|
||||||
|
Endpoint for Linode Object Storage API.
|
||||||
|
Choose a number from below, or type in your own value.
|
||||||
|
Press Enter to leave empty.
|
||||||
|
1 / Atlanta, GA (USA), us-southeast-1
|
||||||
|
\ (us-southeast-1.linodeobjects.com)
|
||||||
|
2 / Chicago, IL (USA), us-ord-1
|
||||||
|
\ (us-ord-1.linodeobjects.com)
|
||||||
|
3 / Frankfurt (Germany), eu-central-1
|
||||||
|
\ (eu-central-1.linodeobjects.com)
|
||||||
|
4 / Milan (Italy), it-mil-1
|
||||||
|
\ (it-mil-1.linodeobjects.com)
|
||||||
|
5 / Newark, NJ (USA), us-east-1
|
||||||
|
\ (us-east-1.linodeobjects.com)
|
||||||
|
6 / Paris (France), fr-par-1
|
||||||
|
\ (fr-par-1.linodeobjects.com)
|
||||||
|
7 / Seattle, WA (USA), us-sea-1
|
||||||
|
\ (us-sea-1.linodeobjects.com)
|
||||||
|
8 / Singapore ap-south-1
|
||||||
|
\ (ap-south-1.linodeobjects.com)
|
||||||
|
9 / Stockholm (Sweden), se-sto-1
|
||||||
|
\ (se-sto-1.linodeobjects.com)
|
||||||
|
10 / Washington, DC, (USA), us-iad-1
|
||||||
|
\ (us-iad-1.linodeobjects.com)
|
||||||
|
endpoint> 3
|
||||||
|
|
||||||
|
Option acl.
|
||||||
|
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.
|
||||||
|
If the acl is an empty string then no X-Amz-Acl: header is added and
|
||||||
|
the default (private) will be used.
|
||||||
|
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>
|
||||||
|
|
||||||
|
Edit advanced config?
|
||||||
|
y) Yes
|
||||||
|
n) No (default)
|
||||||
|
y/n> n
|
||||||
|
|
||||||
|
Configuration complete.
|
||||||
|
Options:
|
||||||
|
- type: s3
|
||||||
|
- provider: Linode
|
||||||
|
- access_key_id: ACCESS_KEY
|
||||||
|
- secret_access_key: SECRET_ACCESS_KEY
|
||||||
|
- endpoint: eu-central-1.linodeobjects.com
|
||||||
|
Keep this "linode" remote?
|
||||||
|
y) Yes this is OK (default)
|
||||||
|
e) Edit this remote
|
||||||
|
d) Delete this remote
|
||||||
|
y/e/d> y
|
||||||
|
```
|
||||||
|
|
||||||
|
This will leave the config file looking like this.
|
||||||
|
|
||||||
|
```
|
||||||
|
[linode]
|
||||||
|
type = s3
|
||||||
|
provider = Linode
|
||||||
|
access_key_id = ACCESS_KEY
|
||||||
|
secret_access_key = SECRET_ACCESS_KEY
|
||||||
|
endpoint = eu-central-1.linodeobjects.com
|
||||||
|
```
|
||||||
|
|
||||||
### ArvanCloud {#arvan-cloud}
|
### ArvanCloud {#arvan-cloud}
|
||||||
|
|
||||||
[ArvanCloud](https://www.arvancloud.com/en/products/cloud-storage) ArvanCloud Object Storage goes beyond the limited traditional file storage.
|
[ArvanCloud](https://www.arvancloud.com/en/products/cloud-storage) ArvanCloud Object Storage goes beyond the limited traditional file storage.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user