Skip to content

feature/s3/transfermanager: support serializable cross-process resumable multipart uploads #3500

Open

Description

@dongjune8931

Describe the feature

Add opt-in, serializable multipart upload resume support to
feature/s3/transfermanager.

When resumable behavior is enabled, a failed or canceled multipart upload would preserve completed parts and return a resume token containing the upload ID, part size, object size, and completed parts.

A later process could pass the token and the original seekable source to a resume API. The transfer manager would verify the state using ListParts, upload only missing parts, and complete the multipart upload.

The existing abort-on-failure behavior should remain the default to avoid unexpected storage costs.

This is related to #113, but specifically proposes an implementation for the new feature/s3/transfermanager. Similar functionality is available in the Java v2 SDK through ResumableFileUpload.

Use Case

Large uploads over unstable networks currently restart from the beginning after the multipart upload is aborted. Applications should be able to preserve completed parts and continue the upload in another process.

Proposed Solution

Introduce a serializable resume token and a method such as ResumeUploadObject. The exact API is open for maintainer feedback.
I would like to work on the implementation if the maintainers agree with the direction.

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

AWS Go SDK V2 Module Versions Used

github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager v0.3.7

Go version used

go version go1.22.12 darwin/arm64

Activity

  1. added
    feature/s3/transfermanagerPertains to S3 transfer manager HLL (feature/s3/manager).
    and removed
    feature-requestA feature should be added or improved.
    needs-triageThis issue or PR still needs to be triaged.
    on Jul 30, 2026
  2. wty-Bryant commented on Jul 30, 2026

    @wty-Bryant
    Collaborator

    the resume/pause functionality will be implemented so this quarter, while the cancellation and pause/resume operation might be treated as different path (cancel means just abort the transfer and fail, while pause means keeping current parts transferred and resume it later)

  3. lucix-aws commented on Jul 30, 2026

    @lucix-aws
    Contributor

    is this a duplicate of #113 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature/s3/transfermanagerPertains to S3 transfer manager HLL (feature/s3/manager).

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions