learningequality / learningequality/studio

Remove the non-resumable single-PUT upload path

Open
#5,989 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

DEV: backend DEV: frontend
Dominant language
Python
Stars
191
Forks
307
Avg merge
5d 6h
Merged PRs (30d)
10

Description

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 (#5988) and ricecooker (learningequality/ricecooker#678) 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. Once both clients have 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, dropping the resumable flag and its branching along with 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
  • upload_url always returns a resumable session or definitive skip; no single-PUT URL is produced.
  • The presigned single-PUT subsystem is gone: the storage_common.py helpers, the resumable flag, and the >500 MB guard.
  • No client code performs single-PUT.

AI usage

Drafted with Claude (Opus 4.8) from the #5975 cutover plan; I reviewed and edited it.

Revised later with Claude (Opus 5) to resolve the bare client references into issue links.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in storage_common.py at upload_url and the named presigned-upload helpers, then review test_storage_common.py for the tests to remove. Search the repository for remaining single-PUT client code and the resumable flag. Done means upload_url only returns a resumable session or skips definitively, with no single-PUT helpers, guard, or client path remaining.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, cloud
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.