Skip to content

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

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions