From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [PATCH proxmox{,-backup} v2 0/6] fix #7078: Add quirk for providers not supporting deleteObjects
Date: Wed, 4 Mar 2026 14:59:16 +0100 [thread overview]
Message-ID: <20260304135922.717714-1-c.ebner@proxmox.com> (raw)
These patches provide a workaround to users which would like to
use the S3 datastore backend with object store API's not implementing
the deleteObjects API method, such as e.g. Google Cloud Storage.
When the quirk is set via the S3 client options, delete objects calls
are performed as individual delete object calls instead.
Patches therefore restructure the s3-client code such that the delete
objects response can be generated and the deletion is performed by
looping over the delete list, performing single object deletions.
On the Proxmox Backup Server side the new, additional quirk is exposed
by reworking the advanced section in the s3 endpoint edit window
to use a fieldset of checkboxes instead of the dropdown selector,
with the intend to improve usability.
Link to the bugtracker issue:
https://bugzilla.proxmox.com/show_bug.cgi?id=7078
Changes since version 1 (thanks @Fabian for review):
- Improve error handling for delete object(s) api calls.
- Retrieved and log delete errors on PBS side.
proxmox:
Christian Ebner (4):
s3-client: parse and return headers for delete object response
s3-client: return dedicated error type for delete object response
s3-client: extend provider quirks by delete objects via delete object
s3-client: return list of errors when deleting by prefix
proxmox-s3-client/src/api_types.rs | 2 +
proxmox-s3-client/src/client.rs | 82 +++++++++++++++++++-----
proxmox-s3-client/src/lib.rs | 2 +
proxmox-s3-client/src/response_reader.rs | 54 ++++++++++++++--
4 files changed, 120 insertions(+), 20 deletions(-)
proxmox-backup:
Christian Ebner (2):
datastore: s3: modify delete objects api and log exposed errors
fix #7078: ui: exponse DeleteObjects via DeleteObject provider quirk
pbs-datastore/src/backup_info.rs | 8 +++--
pbs-datastore/src/datastore.rs | 6 ++--
pbs-datastore/src/s3.rs | 26 ++++++++++++++-
www/window/S3ClientEdit.js | 57 ++++++++++++++++++++++++--------
4 files changed, 77 insertions(+), 20 deletions(-)
Summary over all repositories:
8 files changed, 197 insertions(+), 40 deletions(-)
--
Generated by murpp 0.9.0
next reply other threads:[~2026-03-04 13:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-04 13:59 Christian Ebner [this message]
2026-03-04 13:59 ` [PATCH proxmox v2 1/4] s3-client: parse and return headers for delete object response Christian Ebner
2026-03-04 13:59 ` [PATCH proxmox v2 2/4] s3-client: return dedicated error type " Christian Ebner
2026-03-04 13:59 ` [PATCH proxmox v2 3/4] s3-client: extend provider quirks by delete objects via delete object Christian Ebner
2026-03-04 13:59 ` [PATCH proxmox v2 4/4] s3-client: return list of errors when deleting by prefix Christian Ebner
2026-03-04 13:59 ` [PATCH proxmox-backup v2 1/2] datastore: s3: modify delete objects api and log exposed errors Christian Ebner
2026-03-04 13:59 ` [PATCH proxmox-backup v2 2/2] fix #7078: ui: exponse DeleteObjects via DeleteObject provider quirk Christian Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260304135922.717714-1-c.ebner@proxmox.com \
--to=c.ebner@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.