feat: presigned R2 push path for large repos
Add wire_push_presign() service function and POST /push/presign endpoint. For pushes above threshold (500 objects or 50 MB), client gets presigned R2 PUT URLs, uploads directly to R2 bypassing Cloudflare's ~100s timeout, then sends a zero-O-frame push/stream to finalize the commit. The server's existing referential integrity check (Phase C) accepts objects already in storage. LocalBackend returns stream_these for local dev fallback.
Tests: P1-P7 covering LocalBackend, mocked S3, empty list, zero-O-frame push/stream success and failure, full round-trip, and URL key format.
sha256:52b9750b58326265a6b16b945e58ce31ace2cde7a8ad6552085c1bcfd2f20274
sha
sha256:91840af951fd920ba74bbb25f4a58ca24f0b6fd79fa3af7793c9a98d488cdb10
snapshot
0 comments
To add a comment, use the Muse CLI:
muse hub commit comment sha256:52b9750b58326265a6b16b945e58ce31ace2cde7a8ad6552085c1bcfd2f20274 --body "your comment"
No comments yet. Be the first to start the discussion.