diff --git a/backend/s3/s3.go b/backend/s3/s3.go index 5a62b425b..5d2cf669a 100644 --- a/backend/s3/s3.go +++ b/backend/s3/s3.go @@ -107,6 +107,9 @@ var providerOption = fs.Option{ }, { Value: "FlashBlade", Help: "Pure Storage FlashBlade Object Storage", + }, { + Value: "FileLu", + Help: "FileLu S5 (S3-Compatible Object Storage)", }, { Value: "GCS", Help: "Google Cloud Storage", @@ -348,6 +351,26 @@ func init() { Value: "auto", Help: "R2 buckets are automatically distributed across Cloudflare's data centers for low latency.", }}, + }, { + Name: "region", + Help: "Region to connect to for FileLu S5.", + Provider: "FileLu", + Examples: []fs.OptionExample{{ + Value: "global", + Help: "Global", + }, { + Value: "us-east", + Help: "North America (US-East)", + }, { + Value: "eu-central", + Help: "Europe (EU-Central)", + }, { + Value: "ap-southeast", + Help: "Asia Pacific (AP-Southeast)", + }, { + Value: "me-central", + Help: "Middle East (ME-Central)", + }}, }, { Name: "region", Help: "Region to connect to. - the location where your bucket will be created and your data stored. Need bo be same with your endpoint.\n", @@ -657,7 +680,7 @@ func init() { }, { Name: "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,FlashBlade,HuaweiOBS,IDrive,Intercolo,IONOS,Liara,Linode,Magalu,Mega,OVHcloud,Petabox,Qiniu,RackCorp,Scaleway,Selectel,SpectraLogic,Storj,Synology,TencentCOS,Zata", + Provider: "!AWS,Alibaba,ArvanCloud,ChinaMobile,Cloudflare,FlashBlade,FileLu,HuaweiOBS,IDrive,Intercolo,IONOS,Liara,Linode,Magalu,Mega,OVHcloud,Petabox,Qiniu,RackCorp,Scaleway,Selectel,SpectraLogic,Storj,Synology,TencentCOS,Zata", Examples: []fs.OptionExample{{ Value: "", Help: "Use this if unsure.\nWill use v4 signatures and an empty region.", @@ -858,6 +881,14 @@ func init() { Value: "eos-anhui-1.cmecloud.cn", Help: "Anhui China (Huainan)", }}, + }, { + Name: "endpoint", + Help: "Endpoint for FileLu S5 Object Storage.\nRequired when using FileLu S5.", + Provider: "FileLu", + Examples: []fs.OptionExample{{ + Value: "s5lu.com", + Help: "Global FileLu S5 endpoint", + }}, }, { Name: "endpoint", Help: "Endpoint for Google Cloud Storage.", @@ -2089,7 +2120,7 @@ func init() { }, { Name: "location_constraint", 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,ChinaMobile,Cloudflare,FlashBlade,HuaweiOBS,IBMCOS,IDrive,Intercolo,IONOS,Leviia,Liara,Linode,Magalu,Mega,Outscale,OVHcloud,Petabox,Qiniu,RackCorp,Scaleway,Selectel,SpectraLogic,StackPath,Storj,TencentCOS", + Provider: "!AWS,Alibaba,ArvanCloud,ChinaMobile,Cloudflare,FlashBlade,FileLu,HuaweiOBS,IBMCOS,IDrive,Intercolo,IONOS,Leviia,Liara,Linode,Magalu,Mega,Outscale,OVHcloud,Petabox,Qiniu,RackCorp,Scaleway,Selectel,SpectraLogic,StackPath,Storj,TencentCOS", }, { Name: "acl", Help: `Canned ACL used when creating buckets and storing or copying objects. @@ -3690,6 +3721,11 @@ func setQuirks(opt *Options) { case "FlashBlade": mightGzip = false // Never auto gzips objects virtualHostStyle = false // supports vhost but defaults to paths + case "FileLu": + listObjectsV2 = false + virtualHostStyle = false + urlEncodeListings = false + useMultipartEtag = false case "IBMCOS": listObjectsV2 = false // untested virtualHostStyle = false diff --git a/docs/content/_index.md b/docs/content/_index.md index 99e735816..f44dc7f1e 100644 --- a/docs/content/_index.md +++ b/docs/content/_index.md @@ -125,6 +125,7 @@ WebDAV or S3, that work out of the box.) {{< provider name="Exaba" home="https://exaba.com/" config="/s3/#exaba" >}} {{< provider name="Fastmail Files" home="https://www.fastmail.com/" config="/webdav/#fastmail-files" >}} {{< provider name="FileLu Cloud Storage" home="https://filelu.com/" config="/filelu/" >}} +{{< provider name="FileLu S5 (S3-Compatible Object Storage)" home="https://s5lu.com/" config="/s3/#filelu-s5" >}} {{< provider name="Files.com" home="https://www.files.com/" config="/filescom/" >}} {{< provider name="FlashBlade" home="https://www.purestorage.com/products/unstructured-data-storage.html" config="/s3/#pure-storage-flashblade" >}} {{< provider name="FTP" home="https://en.wikipedia.org/wiki/File_Transfer_Protocol" config="/ftp/" >}} diff --git a/docs/content/s3.md b/docs/content/s3.md index 5b902854d..53cc8db0f 100644 --- a/docs/content/s3.md +++ b/docs/content/s3.md @@ -21,6 +21,7 @@ The S3 backend can be used with a number of different providers: {{< provider name="DigitalOcean Spaces" home="https://www.digitalocean.com/products/object-storage/" config="/s3/#digitalocean-spaces" >}} {{< provider name="Dreamhost" home="https://www.dreamhost.com/cloud/storage/" config="/s3/#dreamhost" >}} {{< provider name="Exaba" home="https://exaba.com/" config="/s3/#exaba" >}} +{{< provider name="FileLu S5 (S3-Compatible Object Storage)" home="https://s5lu.com/" config="/s3/#filelu-s5" >}} {{< provider name="GCS" home="https://cloud.google.com/storage/docs" config="/s3/#google-cloud-storage" >}} {{< provider name="Huawei OBS" home="https://www.huaweicloud.com/intl/en-us/product/obs.html" config="/s3/#huawei-obs" >}} {{< provider name="IBM COS S3" home="http://www.ibm.com/cloud/object-storage" config="/s3/#ibm-cos-s3" >}} @@ -5635,6 +5636,119 @@ Name Type qiniu s3 ``` +### FileLu S5 {#filelu-s5} + +[FileLu S5 Object Storage](https://s5lu.com) is an S3-compatible object storage system. +It provides multiple region options (Global, US-East, EU-Central, AP-Southeast, and ME-Central) while using a single endpoint (`s5lu.com`). +FileLu S5 is designed for scalability, security, and simplicity, with predictable pricing and no hidden charges for data transfers or API requests. + +Here is an example of making a configuration. First run: + +```sh +rclone config +``` + +This will guide you through an interactive setup process. + +```text +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> s5lu + +Option Storage. +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,... FileLu, ... + \ (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 / FileLu S5 Object Storage + \ (FileLu) +[snip] +provider> FileLu + +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> XXX + +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> XXX + +Option endpoint. +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 / Global + \ (global) + 2 / North America (US-East) + \ (us-east) + 3 / Europe (EU-Central) + \ (eu-central) + 4 / Asia Pacific (AP-Southeast) + \ (ap-southeast) + 5 / Middle East (ME-Central) + \ (me-central) +region> 1 + +Edit advanced config? +y) Yes +n) No (default) +y/n> n + +Configuration complete. +Options: +- type: s3 +- provider: FileLu +- access_key_id: XXX +- secret_access_key: XXX +- endpoint: s5lu.com +Keep this "s5lu" 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. + +``` +[s5lu] +type = s3 +provider = FileLu +access_key_id = XXX +secret_access_key = XXX +endpoint = s5lu.com +``` + ### RackCorp {#RackCorp} [RackCorp Object Storage](https://www.rackcorp.com/storage/s3storage) is an S3 compatible object storage platform from your friendly cloud provider RackCorp.