[pbs-devel] [PATCH proxmox{, -backup} v4 00/10] s3: implement list buckets and use bucket selector for datastore creation

Christian Ebner c.ebner at proxmox.com
Thu Jul 31 14:58:50 CEST 2025


This patches aim to increase usability for the user by allowing to list
accessible buckets during datastore creation.

For this, the proxmox s3 client is extended by the list buckets method, fetching
accessible buckets from the s3 api. This requires the client instantiation to be
possible without the bucket name, making it therefore optional. Further, the
regex for the config endpoint url must be restricted to have the bucket name
template pattern always at the start of the template. With these changes, it is
then possible to fetch the buckets given the required permissions to do so.

On the proxmox backup server side, the api endpoints to fetch the bucket list
are implemented as well as the corresponding cli command. Finally, the bucket
name field in the datastore edit window is replaced by an s3 bucket selector,
which loads the accessible bucket names via the api.

Changes since version 3 (thanks @Lukas for additional review and testing):
- Added additional doc comments
- Refactor response status code check and list buckets response generation

Changes since version 2:
- Rebased onto current master

Changes since version 1 (thanks @Lukas for review and testing:
- Fixed issues when listing multiple buckets

proxmox:

Christian Ebner (4):
  s3 client: restrict bucket template pattern to start of endpoint url
  s3 client: make bucket name optional in S3 client options
  s3 client: implement list buckets method
  s3 client: api types: add bucket list item type

 proxmox-s3-client/examples/s3_client.rs  |  2 +-
 proxmox-s3-client/src/api_types.rs       | 17 ++++++-
 proxmox-s3-client/src/client.rs          | 43 +++++++++++++----
 proxmox-s3-client/src/response_reader.rs | 61 ++++++++++++++++++++++++
 4 files changed, 112 insertions(+), 11 deletions(-)


proxmox-backup:

Christian Ebner (6):
  ui: fix formatting issues using proxmox-biome
  datastore: wrap bucket name, as in is now optional in the s3 client
  api: admin s3: make store prefix for check command optional
  api: config s3: add bucket list api endpoint
  bin: expose list buckets as proxmox-backup-manager s3 subcommand
  ui: replace bucket field by bucket selector

 pbs-datastore/src/datastore.rs       |  4 +--
 src/api2/admin/s3.rs                 |  6 ++--
 src/api2/config/s3.rs                | 48 +++++++++++++++++++++++--
 src/bin/proxmox_backup_manager/s3.rs | 28 +++++++++++++--
 www/Makefile                         |  1 +
 www/Utils.js                         |  5 ++-
 www/form/S3BucketSelector.js         | 52 ++++++++++++++++++++++++++++
 www/window/DataStoreEdit.js          | 27 +++++++++++----
 8 files changed, 154 insertions(+), 17 deletions(-)
 create mode 100644 www/form/S3BucketSelector.js


Summary over all repositories:
  12 files changed, 266 insertions(+), 28 deletions(-)

-- 
Generated by git-murpp 0.8.1




More information about the pbs-devel mailing list