[pbs-devel] [PATCH proxmox-backup v2 3/6] api: admin s3: make store prefix for check command optional
Christian Ebner
c.ebner at proxmox.com
Wed Jul 30 16:40:05 CEST 2025
The store prefix is not really required for basic checks and was non
optional since the s3 clients relies on it for object key expansion,
so it should not be forgotten on regular datastore operations.
So make it optional instead. Since this relaxes the api constraints,
it is not a breaking api change.
Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner at proxmox.com>
---
changes since version 1:
- no changes
src/api2/admin/s3.rs | 4 +++-
src/bin/proxmox_backup_manager/s3.rs | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/api2/admin/s3.rs b/src/api2/admin/s3.rs
index 90cc41ea6..209feaebc 100644
--- a/src/api2/admin/s3.rs
+++ b/src/api2/admin/s3.rs
@@ -28,6 +28,7 @@ use pbs_config::s3::S3_CFG_TYPE_ID;
"store-prefix": {
type: String,
description: "Store prefix within bucket for S3 object keys (commonly datastore name)",
+ optional: true,
},
},
},
@@ -39,7 +40,7 @@ use pbs_config::s3::S3_CFG_TYPE_ID;
pub async fn check(
s3_client_id: String,
bucket: String,
- store_prefix: String,
+ store_prefix: Option<String>,
_rpcenv: &mut dyn RpcEnvironment,
) -> Result<Value, Error> {
let (config, _digest) = pbs_config::s3::config()?;
@@ -47,6 +48,7 @@ pub async fn check(
.lookup(S3_CFG_TYPE_ID, &s3_client_id)
.context("config lookup failed")?;
+ let store_prefix = store_prefix.unwrap_or_default();
let options =
S3ClientOptions::from_config(config.config, config.secret_key, Some(bucket), store_prefix);
diff --git a/src/bin/proxmox_backup_manager/s3.rs b/src/bin/proxmox_backup_manager/s3.rs
index 867bc8e6b..f660baf4a 100644
--- a/src/bin/proxmox_backup_manager/s3.rs
+++ b/src/bin/proxmox_backup_manager/s3.rs
@@ -19,6 +19,7 @@ use serde_json::Value;
"store-prefix": {
type: String,
description: "Store prefix within bucket for S3 object keys (commonly datastore name)",
+ optional: true,
},
},
},
@@ -27,7 +28,7 @@ use serde_json::Value;
async fn check(
s3_endpoint_id: String,
bucket: String,
- store_prefix: String,
+ store_prefix: Option<String>,
rpcenv: &mut dyn RpcEnvironment,
) -> Result<Value, Error> {
api2::admin::s3::check(s3_endpoint_id, bucket, store_prefix, rpcenv).await?;
--
2.47.2
More information about the pbs-devel
mailing list