Files
llm-wiki/raw/official-docs/aws-s3-multipart-upload-limits.md
T

6.0 KiB
Raw Blame History

title, source_type, url, archive_url, related_branches, related_projects, tags, created
title source_type url archive_url related_branches related_projects tags created
AWS — Amazon S3 multipart upload limits official-doc https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
feature-frontend-large-object-transfer-contract
ca-skeleton-frontend
frontend
transfer
upload
multipart
object-storage
aws-s3
2026-07-28

AWS — Amazon S3 multipart upload limits

Layer: raw/ — 외부 자료의 원문 발췌·출처 기록.

활용 branch (필수, 최소 1개+)

Branch 이 자료가 정당화하는 결정
[[raw/branch-notes/feature-frontend-large-object-transfer-contract]] TRANSFER_PART_SIZE_BYTES하한 검증이 필요한 이유(D8), part 수 상한이 최대 전송 크기를 결정한다는 사실

출처

왜 저장했는지

branch 가 part size default 를 8 MiB, 병렬도를 3 으로 적어 두었는데 "측정값이 아니라 초기 default" 라고만 밝혀 두었다. 문제는 part size 가 취향의 문제가 아니라 vendor 가 강제하는 하한이 있는 값이라는 점이다. 하한 아래로 설정하면 전송이 마지막 part 를 제외한 전 구간에서 거부된다. vendor 를 아직 고르지 않았더라도(FE-Q-012) 대표적인 구현 하나의 실제 수치를 확보해야 "하한 검증을 계약에 넣어야 한다" 를 근거 있게 말할 수 있다.

⚠️ vendor 선택이 아니다. 이 문서는 Amazon S3 의 제약을 증명할 뿐이며, 이 프로젝트가 S3 를 쓴다는 결정은 존재하지 않는다(FE-Q-012 미해소). 다른 vendor 의 수치는 다를 수 있다.

핵심 인용

[§Amazon S3 multipart upload limits] "In general, when your object size reaches 100 MB, you should consider using multipart uploads instead of uploading the object in a single operation."

[§Amazon S3 multipart upload limits] "There is no minimum size limit on the last part of your multipart upload."

[§표 — Maximum object size] "48.8 TiB"

[§표 — Maximum number of parts per upload] "10,000"

[§표 — Part numbers] "1 to 10,000 (inclusive)"

[§표 — Part size] "5 MiB to 5 GiB. There is no minimum size limit on the last part of your multipart upload."

[§표 — Maximum number of parts returned for a list parts request] "1000"

추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
C1 S3 multipart 의 part size 는 5 MiB 이상 5 GiB 이하여야 한다 [§표 — Part size] "5 MiB to 5 GiB." official-reference Amazon S3 다른 object storage 의 하한이 같다는 것
C2 마지막 part 에는 최소 크기 제한이 없다 [§limits] "There is no minimum size limit on the last part of your multipart upload." official-reference Amazon S3 마지막 part 를 특별 취급하지 않아도 된다는 뜻 — 오히려 분할 로직이 이 예외를 알아야 한다
C3 upload 당 part 수는 최대 10,000 이며 part number 는 1~10,000 이다 [§표] "Maximum number of parts per upload / 10,000" official-reference Amazon S3 10,000 을 넘는 분할이 다른 vendor 에서도 불가능하다는 것
C4 단일 객체 최대 크기는 48.8 TiB 다 [§표 — Maximum object size] "48.8 TiB" official-reference Amazon S3 브라우저가 그 크기를 다룰 수 있다는 것
C5 list parts 요청 1회가 돌려주는 part 는 최대 1000 개다 [§표] "Maximum number of parts returned for a list parts request / 1000" official-reference S3 API 소비자 프론트가 list parts 를 직접 호출한다는 것 — presigned 방식에서는 backend 책임일 수 있다
C6 100 MB 부터 multipart 사용을 고려하도록 권고한다 [§limits] "when your object size reaches 100 MB, you should consider using multipart uploads" official-reference S3 사용자 일반 100 MB 미만에서 multipart 가 금지된다는 것 — 권고이지 제약이 아님

적용 경계

  • 이 자료가 직접 증명하는 것:
    • C1~C5: S3 의 part size 범위·part 수 상한·객체 크기 상한이라는 하드 제약의 존재와 실제 수치
  • 이 자료가 증명하지 않는 것:
    • 이 프로젝트가 S3 를 쓴다는 것 (FE-Q-012 미해소)
    • part size 8 MiB 나 병렬도 3 이 최적이라는 것 — 이 문서는 성능이 아니라 허용 범위만 말한다
    • 브라우저에서 10,000 part 를 병렬 관리하는 것이 현실적이라는 것
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • 실제 선택 vendor 의 part size 하한 (FE-Q-012) — 그 값이 TRANSFER_PART_SIZE_BYTES 검증의 기준이 된다
    • part size × part 수 상한으로 계산되는 최대 전송 크기를 제품이 수용하는지

메모

  • 인용 1 해석 후보 (미검증): C1+C3 을 곱하면 고정 part size 가 최대 전송 크기를 결정한다. 8 MiB × 10,000 ≈ 80 GB. 이 계산은 우리 도출이며 AWS 가 그렇게 적은 것이 아니다. 그 이상을 전송하려면 part size 를 키우거나 분할 전략을 바꿔야 한다.
  • 인용 2 해석 후보 (미검증): C1 의 하한 때문에 TRANSFER_PART_SIZE_BYTES 는 자유값이 아니라 검증 대상 계약값이다. 8 MiB 는 S3 하한을 넘지만, 하한을 넘는다는 사실 자체를 부팅 시 검사하지 않으면 vendor 를 바꾸는 순간 조용히 깨진다.
  • 추가로 봐야 할 동일 출처 페이지: mpuoverview (multipart upload 개요), presigned URL 만료 정책 문서

관련

  • 같은 주제 다른 official-doc: [[raw/official-docs/mdn-http-range-fetch-transfer]], [[raw/official-docs/mdn-storage-quotas-eviction-persistence]]
  • 이 자료를 인용한 wiki 요약: 생성 전