[pbs-devel] [PATCH proxmox-backup v2 5/6] bin: expose list buckets as proxmox-backup-manager s3 subcommand
Christian Ebner
c.ebner at proxmox.com
Wed Jul 30 16:40:07 CEST 2025
Allows to list the buckets from the cli, mostly to be feature
compatible with the rest of the api endpoints for s3.
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/bin/proxmox_backup_manager/s3.rs | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/src/bin/proxmox_backup_manager/s3.rs b/src/bin/proxmox_backup_manager/s3.rs
index f660baf4a..a94371e09 100644
--- a/src/bin/proxmox_backup_manager/s3.rs
+++ b/src/bin/proxmox_backup_manager/s3.rs
@@ -1,5 +1,5 @@
use proxmox_router::{cli::*, ApiHandler, RpcEnvironment};
-use proxmox_s3_client::{S3_BUCKET_NAME_SCHEMA, S3_CLIENT_ID_SCHEMA};
+use proxmox_s3_client::{S3BucketListItem, S3_BUCKET_NAME_SCHEMA, S3_CLIENT_ID_SCHEMA};
use proxmox_schema::api;
use proxmox_backup::api2;
@@ -35,6 +35,23 @@ async fn check(
Ok(Value::Null)
}
+#[api(
+ input: {
+ properties: {
+ "s3-endpoint-id": {
+ schema: S3_CLIENT_ID_SCHEMA,
+ },
+ },
+ },
+)]
+/// List buckets accessible by the given S3 client configuration
+async fn list_buckets(
+ s3_endpoint_id: String,
+ rpcenv: &mut dyn RpcEnvironment,
+) -> Result<Vec<S3BucketListItem>, Error> {
+ api2::config::s3::list_buckets(s3_endpoint_id, rpcenv).await
+}
+
#[api(
input: {
properties: {
@@ -88,6 +105,12 @@ pub fn s3_commands() -> CommandLineInterface {
CliCommand::new(&api2::config::s3::API_METHOD_DELETE_S3_CLIENT_CONFIG)
.arg_param(&["id"])
.completion_cb("id", pbs_config::s3::complete_s3_client_id),
+ )
+ .insert(
+ "list-buckets",
+ CliCommand::new(&API_METHOD_LIST_BUCKETS)
+ .arg_param(&["s3-endpoint-id"])
+ .completion_cb("s3-endpoint-id", pbs_config::s3::complete_s3_client_id),
);
let cmd_def = CliCommandMap::new()
--
2.47.2
More information about the pbs-devel
mailing list