[pbs-devel] [PATCH v2 proxmox-backup 0/5] fix: #3847 pipe from STDIN to proxmox-backup-client

Christian Ebner c.ebner at proxmox.com
Thu Jan 8 11:44:15 CET 2026


Patches look promising already, great work! Huge improvement since the 
previous version of the patches.

Left some comments on individual patches, but nothing big so far.

On 12/19/25 5:18 PM, Robert Obkircher wrote:
> Add support for commands like:
>      ssh host cmd | proxmox-backup-client backup data.img:/dev/stdin
>      proxmox-backup-client backup a.img:<(mysqldump) b.img:<(pgdump)
> 
> Changes since v1:
> - use mremap+ftruncate instead of write_all_at
> - make the size API parameter optional instead of using 0
> - use an enum to represent fixed/dynamic chunk size in UploadOptions
> - alias "-" to "/dev/stdin"
> - split changes into separate commits
> 
> This does not yet need a detailed review, but let me know if anything
> looks completely off.
> 
> I'm still planning on writing some proper tests for the backend.
> That may involve moving the resizing logic to a type like
> proxmox_sys::mmap::Mmap, so it can be tested in isolation.
> 
> Christian Ebner previously suggested defining a trait for the
> FixedIndexWriter, with separate implementations for known and unknown
> size. I'm not sure if this is still necessary, because the changes are
> already much more isolated. Should I still introduce such a trait?

No, the current implementation really does not call for that at all.

> 
> 
> Robert Obkircher (5):
>    fix #3847: datastore: support writing fidx files of unknown size
>    fix #3847: api: backup: make fixed index file size optional
>    fix #3847: client: support fifo pipe inputs for images
>    fix #3847: client: treat minus sign as stdin
>    DO NOT MERGE: test script for reference
> 
>   pbs-client/src/backup_writer.rs   | 37 ++++++++----
>   pbs-datastore/src/datastore.rs    |  2 +-
>   pbs-datastore/src/fixed_index.rs  | 98 +++++++++++++++++++++++++++++--
>   proxmox-backup-client/src/main.rs | 37 ++++++++----
>   src/api2/backup/environment.rs    |  8 ++-
>   src/api2/backup/mod.rs            |  4 +-
>   src/server/push.rs                | 13 ++--
>   test-pipes.sh                     | 68 +++++++++++++++++++++
>   8 files changed, 227 insertions(+), 40 deletions(-)
>   create mode 100755 test-pipes.sh
> 





More information about the pbs-devel mailing list