Skip to content

Multipart upload fails above 80 GB — hardcoded 8 MB part size hits 10,000 part limit #1067

@clark-builds

Description

@clark-builds

Bug

Uploading a 135 GB file with put() and multipart: true fails at part 10,001 with:

Root cause

partSizeInBytes is hardcoded to 8 * 1024 * 1024 (8 MB) in packages/blob/src/multipart/upload.ts. Since the Blob API enforces a maximum of 10,000 parts per upload, the effective file size ceiling is:

8 MB × 10,000 = 80 GB

This contradicts the changelog which states multipart uploads support files up to 5 TB.

Environment

  • @vercel/blob v2.3.3
  • Node.js, server-side put() with multipart: true
  • File: 135 GB (Protomaps planet PMTiles)

Suggested fix

Auto-scale partSizeInBytes based on known file size, similar to how the AWS S3 SDK handles this:

const minPartSize = 8 * 1024 * 1024 // 8 MB
const partSizeInBytes = Math.max(minPartSize, Math.ceil(totalBytes / 9_999))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions