gabriel / muse public
feat patch task/presign-upload #1 / 1
AI Agent gabriel · 153 days ago · Apr 22, 2026 · Diff

feat: presigned URL upload path for large objects

- Add presign_objects to MuseTransport protocol and HttpTransport POST /presign → {oid: presigned_put_url} map - Add _presigned_put helper in push.py for direct R2/S3 PUT - Split large objects (> LARGE_OBJECT_THRESHOLD) out of push_stream payload; upload via presigned URL to bypass Cloudflare limits - TDD: 13 tests covering T14 (transport) and T15 (push split)

sha256:22b91c12783fdd2e865e94bc4ce7d89580e70e72cac175b366cba58ab6185ba9 sha
+42 ~5 symbols
sha256:6aa8daaae6f5cd25ee21827bde54eb596e3531298c2934721393fd6e988948b9 snapshot
+42
symbols added
~5
symbols modified
0
dead code introduced
Semantic Changes 47 symbols
~ tests/test_presign_upload.py .py 39 symbols added
+ TestT14PresignTransport class class TestT14PresignTransport L66–161
+ _make_transport method method _make_transport L69–71
+ _mock_presign_response method method _mock_presign_response L73–78
+ test_presign_objects_empty_list_returns_empty_dict method method test_presign_objects_empty_list_returns_empty_dict L146–154
+ test_presign_objects_in_musettransport_protocol method method test_presign_objects_in_musettransport_protocol L156–161
+ test_presign_objects_method_exists method method test_presign_objects_method_exists L80–84
+ test_presign_objects_posts_to_presign_endpoint method method test_presign_objects_posts_to_presign_endpoint L86–104
+ test_presign_objects_returns_url_map method method test_presign_objects_returns_url_map L106–118
+ test_presign_objects_sends_object_ids_in_body method method test_presign_objects_sends_object_ids_in_body L120–144
+ TestT15LargeObjectPush class class TestT15LargeObjectPush L221–391
+ _run method method _run L241–269
+ repo method method repo L228–232
+ small_only_repo method method small_only_repo L235–239
+ test_large_object_not_in_push_stream_payload method method test_large_object_not_in_push_stream_payload L271–284
+ test_presign_not_called_when_all_objects_small method method test_presign_not_called_when_all_objects_small L322–344
+ test_presign_objects_called_for_large_objects method method test_presign_objects_called_for_large_objects L304–320
+ test_presigned_put_is_issued_for_large_object method method test_presigned_put_is_issued_for_large_object L346–362
+ test_presigned_put_sends_raw_content method method test_presigned_put_sends_raw_content L364–381
+ test_push_stream_still_called_after_presigned_upload method method test_push_stream_still_called_after_presigned_upload L383–391
+ test_small_object_still_in_push_stream_payload method method test_small_object_still_in_push_stream_payload L286–302
+ _large function function _large L56–59
+ _make_object function function _make_object L47–48
+ _make_push_result function function _make_push_result L38–44
+ _make_repo_with_objects function function _make_repo_with_objects L168–218
+ _oid function function _oid L34–35
+ _small function function _small L51–53
+ MagicMock import import MagicMock L21–21
+ ObjectPayload import import ObjectPayload L26–26
+ PushResult import import PushResult L26–26
+ annotations import import annotations L15–15
+ blob_id import import blob_id L27–27
+ call import import call L21–21
+ hashlib import import hashlib L17–17
+ json import import json L18–18
+ msgpack import import msgpack L23–23
+ patch import import patch L21–21
+ pathlib import import pathlib L19–19
+ pytest import import pytest L24–24
+ zlib import import zlib L20–20
~ muse/cli/commands/push.py .py 1 symbol added, 1 symbol modified
+ _presigned_put function function _presigned_put L114–122
~ muse/core/transport.py .py 2 symbols added, 4 symbols modified
+ presign_objects method method presign_objects L1567–1580
+ presign_objects method method presign_objects L744–767
← Older Oldest on task/presign-upload
All commits
Newer → Latest on task/presign-upload

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:22b91c12783fdd2e865e94bc4ce7d89580e70e72cac175b366cba58ab6185ba9 --body "your comment"