Skip to content

Migrate web frontend uploads to the GCS resumable scheme #5988

Description

@rtibbles

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

Overview

Migrate the web frontend's upload paths from single-PUT to the opt-in GCS resumable scheme added in #5975, so interrupted uploads resume instead of restarting from byte 0.

Complexity: Medium
Target branch: unstable

Context

Two frontend sites single-PUT the whole file and skip upload when a HEAD on the storage URL returns 200:

  • shared/vuex/file/actions.jsuploadFileToStorage
  • shared/views/TipTapEditor/.../imageService.jsuploadFileToStorage

Once #5975 lands, upload_url (with resumable: true) returns either a definitive skip or a session URI — the client no longer needs the HEAD check.

The Change

  • Pass resumable: true to upload_url; upload to the returned session URI in chunks (256 KiB multiples), resuming from the last persisted offset on interruption.
  • Apply to both upload sites.
  • On a definitive skip from upload_url, mark the file complete without uploading; remove the client HEAD-existence check.

Out of Scope

  • Removing single-PUT / cutover.
  • ricecooker client.

Acceptance Criteria

  • Both upload sites pass resumable: true and upload to the session URI in 256 KiB-multiple chunks.
  • An interrupted upload resumes from the last persisted offset instead of restarting.
  • On a definitive skip from upload_url, the file is marked complete without uploading; the client HEAD check is removed.

References

AI usage

I used Claude (Opus 4.8) to draft this issue from the design established in #5975. I defined the scope and acceptance criteria, and verified the named upload paths against the current code.

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions