[pbs-devel] [PATCH proxmox-backup v8 12/45] api: datastore: conditionally upload client log to s3 backend
Lukas Wagner
l.wagner at proxmox.com
Fri Jul 18 10:28:13 CEST 2025
Reviewed-by: Lukas Wagner <l.wagner at proxmox.com>
On 2025-07-15 14:52, Christian Ebner wrote:
> 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 7:
> - no changes
>
> 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
--
- Lukas
More information about the pbs-devel
mailing list