[pbs-devel] [PATCH proxmox-backup v7 12/38] api: datastore: conditionally upload client log to s3 backend
Christian Ebner
c.ebner at proxmox.com
Thu Jul 10 19:07:02 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 6:
- new in this version
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 02666afda..b28b646e8 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_with_retry(object_key, data, true))
+ .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