backupy-agent/apps/agent/internal/pipeline
TronoSfera 6fe4d9165d fix(upload): stage encrypted body in temp file for known Content-Length
MinIO (and stricter S3 endpoints) reject presigned PUTs sent with
chunked transfer-encoding, returning HTTP 411 'Length Required'. The
pipeline could not know the final encrypted size up-front so it
streamed the request body with ContentLength=-1.

Drain the encrypt stage into a temp file, then issue the PUT with an
explicit Content-Length. The dump → compress → encrypt goroutines
still overlap because the drain reads from the encrypt pipe; only the
upload itself is sequenced after encryption completes.
2026-05-18 14:51:40 +03:00
..
compress.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
compress_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
encrypt.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
encrypt_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
hooks.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
hooks_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
mongodump.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
mongodump_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
mysqldump.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
mysqldump_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
pg_dump.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
pg_dump_test.go fix(sqlite): stage snapshot in temp file instead of /dev/stdout 2026-05-18 14:46:48 +03:00
pipeline.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
redis.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
redis_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
runner.go fix(upload): stage encrypted body in temp file for known Content-Length 2026-05-18 14:51:40 +03:00
runner_test.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00
sqlite.go fix(sqlite): stage snapshot in temp file instead of /dev/stdout 2026-05-18 14:46:48 +03:00
sqlite_test.go fix(sqlite): stage snapshot in temp file instead of /dev/stdout 2026-05-18 14:46:48 +03:00
upload.go feat(initial): Backupy agent + backupy-decrypt CLI 2026-05-17 20:22:35 +03:00