
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview
Once the web and ricecooker clients both upload via resumable, remove the single-PUT path so resumable is the only upload scheme.
Complexity: Low
Target branch: unstable
Context
#5975 added opt-in resumable via the resumable flag on upload_url, retaining single-PUT for un-migrated clients. With both clients migrated, single-PUT is dead code.
The Change
- Remove the presigned single-
PUT URL subsystem in storage_common.py: get_presigned_upload_url, _get_gcs_presigned_put_url, _get_s3_presigned_put_url, and UnknownStorageBackendError (if unused elsewhere).
- Remove the
get_presigned_upload_url call from upload_url.
- Make resumable the only scheme: drop the
resumable flag/branching and the non-resumable >500 MB guard.
- Remove the presigned-URL tests in
test_storage_common.py.
- Remove any remaining single-
PUT client code.
Acceptance Criteria
AI usage
Drafted with Claude (Opus 4.8) from the #5975 cutover plan; I reviewed and edited it.
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
Once the web and ricecooker clients both upload via resumable, remove the single-
PUTpath so resumable is the only upload scheme.Complexity: Low
Target branch: unstable
Context
#5975 added opt-in resumable via the
resumableflag onupload_url, retaining single-PUTfor un-migrated clients. With both clients migrated, single-PUTis dead code.The Change
PUTURL subsystem instorage_common.py:get_presigned_upload_url,_get_gcs_presigned_put_url,_get_s3_presigned_put_url, andUnknownStorageBackendError(if unused elsewhere).get_presigned_upload_urlcall fromupload_url.resumableflag/branching and the non-resumable >500 MB guard.test_storage_common.py.PUTclient code.Acceptance Criteria
upload_urlalways returns a resumable session or definitive skip; no single-PUTURL is produced.PUTsubsystem is gone: thestorage_common.pyhelpers, theresumableflag, and the >500 MB guard.PUT.AI usage
Drafted with Claude (Opus 4.8) from the #5975 cutover plan; I reviewed and edited it.