[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