[pbs-devel] [PATCH proxmox-backup v9 12/46] api: datastore: conditionally upload client log to s3 backend
Christian Ebner
c.ebner at proxmox.com
Sat Jul 19 14:50:01 CEST 2025
If the datastore is backed by an s3 compatible object store, upload
the client log content to the s3 backend before persisting it to the
local cache store.
Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
changes since version 8:
- use refactored upload_replace_with_retry
src/api2/admin/datastore.rs | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs
index 1fabda09a..e6b8449d2 100644
--- a/src/api2/admin/datastore.rs
+++ b/src/api2/admin/datastore.rs
@@ -1637,6 +1637,17 @@ pub fn upload_backup_log(
// always verify blob/CRC at server side
let blob = DataBlob::load_from_reader(&mut &data[..])?;
+ if let DatastoreBackend::S3(s3_client) = datastore.backend()? {
+ let object_key = pbs_datastore::s3::object_key_from_path(
+ &backup_dir.relative_path(),
+ file_name.as_ref(),
+ )
+ .context("invalid client log object key")?;
+ let data = hyper::body::Bytes::copy_from_slice(blob.raw_data());
+ proxmox_async::runtime::block_on(s3_client.upload_replace_with_retry(object_key, data))
+ .context("failed to upload client log to s3 backend")?;
+ };
+
replace_file(&path, blob.raw_data(), CreateOptions::new(), false)?;
// fixme: use correct formatter
--
2.47.2
More information about the pbs-devel
mailing list