[pbs-devel] [PATCH proxmox-backup v2 2/6] datastore: wrap bucket name, as in is now optional in the s3 client

Christian Ebner c.ebner at proxmox.com
Wed Jul 30 16:40:04 CEST 2025


The bucket name is now optional so it is possible to also instantiate
a client to perform operations without a bucket, e.g. listing of
available buckets. Adapt the callsides accordingly.

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

 pbs-datastore/src/datastore.rs | 2 +-
 src/api2/admin/s3.rs           | 2 +-
 src/api2/config/datastore.rs   | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pbs-datastore/src/datastore.rs b/pbs-datastore/src/datastore.rs
index e8be576f7..01122c6de 100644
--- a/pbs-datastore/src/datastore.rs
+++ b/pbs-datastore/src/datastore.rs
@@ -256,7 +256,7 @@ impl DataStore {
                 let options = S3ClientOptions::from_config(
                     config.config,
                     config.secret_key,
-                    bucket,
+                    Some(bucket),
                     self.name().to_owned(),
                 );
                 let s3_client = S3Client::new(options)?;
diff --git a/src/api2/admin/s3.rs b/src/api2/admin/s3.rs
index 1a0932945..90cc41ea6 100644
--- a/src/api2/admin/s3.rs
+++ b/src/api2/admin/s3.rs
@@ -48,7 +48,7 @@ pub async fn check(
         .context("config lookup failed")?;
 
     let options =
-        S3ClientOptions::from_config(config.config, config.secret_key, bucket, store_prefix);
+        S3ClientOptions::from_config(config.config, config.secret_key, Some(bucket), store_prefix);
 
     let test_object_key =
         S3ObjectKey::try_from(".s3-client-test").context("failed to generate s3 object key")?;
diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs
index d24323152..cf8e306cc 100644
--- a/src/api2/config/datastore.rs
+++ b/src/api2/config/datastore.rs
@@ -151,7 +151,7 @@ pub(crate) fn do_create_datastore(
         let options = S3ClientOptions::from_config(
             config.config,
             config.secret_key,
-            bucket,
+            Some(bucket),
             datastore.name.to_owned(),
         );
         let s3_client = S3Client::new(options).context("failed to create s3 client")?;
@@ -379,7 +379,7 @@ pub fn create_datastore(
             let options = S3ClientOptions::from_config(
                 config.config,
                 config.secret_key,
-                bucket,
+                Some(bucket),
                 store_name.clone(),
             );
             let s3_client = S3Client::new(options).context("failed to create s3 client")?;
-- 
2.47.2





More information about the pbs-devel mailing list