From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 159381FF138 for ; Wed, 04 Mar 2026 14:58:36 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 016B4AE7A; Wed, 4 Mar 2026 14:59:39 +0100 (CET) From: Christian Ebner 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 Message-ID: <20260304135922.717714-1-c.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1772632750205 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.013 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.668 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.322 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 1.141 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: 4SXWCAPDOEUEI6OG3XR3SPIOVHEK2IXT X-Message-ID-Hash: 4SXWCAPDOEUEI6OG3XR3SPIOVHEK2IXT X-MailFrom: c.ebner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: 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