From 3c66d9ccb15b52fe25e82479101de49ecbe35c8f Mon Sep 17 00:00:00 2001 From: PrathameshLakawade Date: Mon, 2 Jun 2025 16:06:09 -0700 Subject: [PATCH] backend/s3: require custom endpoint for Lyve Cloud v2 support Lyve Cloud v2 no longer provides a shared S3 endpoint like v1 did. Instead, each customer receives a unique, reseller-specific endpoint. To reflect this change, the S3 backend now requires users to manually enter their endpoint when selecting Lyve Cloud as a provider. Previously, users selected from a list of hardcoded Lyve Cloud v1 endpoints. This was not compatible with Lyve Cloud v2 accounts and could cause confusion or misconfiguration. This change: - Removes outdated pre-defined endpoint selection for Lyve Cloud - Requires users to provide their own endpoint - Adds a format example to guide correct usage Before: Users selected a fixed endpoint from a list (v1 only) After: Users must input their own endpoint (v2-compatible) --- README.md | 1 + backend/s3/s3.go | 20 +++++++------------- docs/content/s3.md | 19 ++++++++----------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 65798a5ee..4d92b3ac6 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,7 @@ Rclone *("rsync for cloud storage")* is a command-line program to sync files and * rsync.net [:page_facing_up:](https://rclone.org/sftp/#rsync-net) * Scaleway [:page_facing_up:](https://rclone.org/s3/#scaleway) * Seafile [:page_facing_up:](https://rclone.org/seafile/) + * Seagate Lyve Cloud ["page_facing_up:](https://rclone.org/s3/#lyve) * SeaweedFS [:page_facing_up:](https://rclone.org/s3/#seaweedfs) * Selectel Object Storage [:page_facing_up:](https://rclone.org/s3/#selectel) * SFTP [:page_facing_up:](https://rclone.org/sftp/) diff --git a/backend/s3/s3.go b/backend/s3/s3.go index bde3dc699..43c7c4c6e 100644 --- a/backend/s3/s3.go +++ b/backend/s3/s3.go @@ -1006,6 +1006,12 @@ func init() { Value: "us-iad-1.linodeobjects.com", Help: "Washington, DC, (USA), us-iad-1", }}, + }, { + // Lyve Cloud endpoints + Name: "endpoint", + Help: "Endpoint for Lyve Cloud S3 API.\nRequired when using an S3 clone. Please type in your LyveCloud endpoint.\nExamples:\n- s3.us-west-1.{account_name}.lyve.seagate.com (US West 1 - California)\n- s3.eu-west-1.{account_name}.lyve.seagate.com (EU West 1 - Ireland)", + Provider: "LyveCloud", + Required: true, }, { // Magalu endpoints: https://docs.magalu.cloud/docs/object-storage/how-to/copy-url Name: "endpoint", @@ -1380,7 +1386,7 @@ func init() { }, { Name: "endpoint", Help: "Endpoint for S3 API.\n\nRequired when using an S3 clone.", - Provider: "!AWS,ArvanCloud,IBMCOS,IDrive,IONOS,TencentCOS,HuaweiOBS,Alibaba,ChinaMobile,GCS,Liara,Linode,Magalu,Scaleway,Selectel,StackPath,Storj,Synology,RackCorp,Qiniu,Petabox", + Provider: "!AWS,ArvanCloud,IBMCOS,IDrive,IONOS,TencentCOS,HuaweiOBS,Alibaba,ChinaMobile,GCS,Liara,Linode,LyveCloud,Magalu,Scaleway,Selectel,StackPath,Storj,Synology,RackCorp,Qiniu,Petabox", Examples: []fs.OptionExample{{ Value: "objects-us-east-1.dream.io", Help: "Dream Objects endpoint", @@ -1429,18 +1435,6 @@ 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 (Virginia)", - Provider: "LyveCloud", - }, { - Value: "s3.us-west-1.lyvecloud.seagate.com", - Help: "Seagate Lyve Cloud US West 1 (California)", - Provider: "LyveCloud", - }, { - Value: "s3.ap-southeast-1.lyvecloud.seagate.com", - Help: "Seagate Lyve Cloud AP Southeast 1 (Singapore)", - Provider: "LyveCloud", }, { Value: "oos.eu-west-2.outscale.com", Help: "Outscale EU West 2 (Paris)", diff --git a/docs/content/s3.md b/docs/content/s3.md index 5db2d5ff5..dba4350bc 100644 --- a/docs/content/s3.md +++ b/docs/content/s3.md @@ -3895,20 +3895,17 @@ Press Enter to leave empty. region> ``` -Choose an endpoint from the list +Enter your Lyve Cloud endpoint. This field cannot be kept empty. ``` -Endpoint for S3 API. +Endpoint for Lyve Cloud 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 (Virginia) - \ (s3.us-east-1.lyvecloud.seagate.com) - 2 / Seagate Lyve Cloud US West 1 (California) - \ (s3.us-west-1.lyvecloud.seagate.com) - 3 / Seagate Lyve Cloud AP Southeast 1 (Singapore) - \ (s3.ap-southeast-1.lyvecloud.seagate.com) -endpoint> 1 +Please type in your LyveCloud endpoint. +Examples: +- s3.us-west-1.{account_name}.lyve.seagate.com (US West 1 - California) +- s3.eu-west-1.{account_name}.lyve.seagate.com (US West 1 - Ireland) +Enter a value. +endpoint> s3.us-west-1.global.lyve.seagate.com ``` Leave location constraint blank