Khi cần tải lên các tệp dung lượng lớn như video, bản sao lưu hoặc dataset, phương thức upload thông thường có thể gặp lỗi nếu kết nối mạng bị gián đoạn. Multipart Upload giải quyết vấn đề này bằng cách chia tệp thành nhiều phần nhỏ (part), tải từng phần độc lập và ghép chúng lại thành một object hoàn chỉnh trên hệ thống lưu trữ. Theo khuyến nghị của Amazon S3, người dùng nên cân nhắc Multipart Upload khi kích thước object đạt khoảng 100 MB. Vậy cơ chế này hoạt động như thế nào, có những giới hạn gì và cách cấu hình ra sao?
Multipart Upload là gì và khi nào nên dùng?
Khi upload một tệp lớn bằng một yêu cầu duy nhất, toàn bộ quá trình có thể phải thực hiện lại nếu kết nối bị ngắt hoặc yêu cầu thất bại. Điều này gây tốn thời gian và băng thông, đặc biệt khi truyền dữ liệu lên Object Storage qua Internet.
Multipart Upload giúp hạn chế rủi ro bằng cách chia tệp thành nhiều phần và tải từng phần độc lập. Nhờ đó, người dùng có thể truyền dữ liệu song song, chỉ tải lại phần bị lỗi và chủ động quản lý tiến trình upload.
1. Multipart Upload là gì?
Multipart Upload là cơ chế tải lên một object bằng cách chia dữ liệu thành nhiều part riêng biệt, sau đó ghép các part thành một object hoàn chỉnh trên hệ thống lưu trữ.
Thay vì gửi toàn bộ tệp trong một request, ứng dụng khởi tạo một phiên upload để nhận Upload ID. Mỗi part được tải lên bằng một request riêng, đi kèm số thứ tự (Part Number) và thông tin ETag do hệ thống trả về.
Sau khi tất cả các part cần thiết được tải lên thành công, ứng dụng gửi yêu cầu CompleteMultipartUpload để hoàn tất phiên. Hệ thống lưu trữ dựa trên danh sách part đã cung cấp để tạo thành object cuối cùng.
Multipart Upload thường được sử dụng trong Amazon S3 và các dịch vụ Object Storage hỗ trợ giao thức S3 API. Tuy nhiên, mức độ tương thích, giới hạn kích thước và cách triển khai có thể khác nhau tùy nhà cung cấp.

2. Lợi ích của Multipart Upload
Multipart Upload mang lại một số lợi ích quan trọng khi xử lý tệp dung lượng lớn:
- Upload song song: Các part có thể được tải lên đồng thời, giúp tận dụng băng thông và giảm thời gian truyền dữ liệu trong điều kiện phù hợp.
- Retry từng phần: Nếu một part bị lỗi, ứng dụng chỉ cần tải lại part đó thay vì truyền lại toàn bộ tệp.
- Tạm dừng và tiếp tục: Các part đã tải thành công vẫn được giữ trong phiên upload. Ứng dụng có thể tiếp tục với những part còn thiếu nếu vẫn còn thông tin phiên và các part cần thiết.
- Hỗ trợ luồng dữ liệu chưa xác định kích thước cuối: Multipart Upload phù hợp với một số ứng dụng tạo dữ liệu theo luồng, khi không thể xác định trước toàn bộ dung lượng tệp.
Những lợi ích này đặc biệt hữu ích với hệ thống thường xuyên truyền tải dữ liệu lớn, có kết nối mạng không ổn định hoặc cần tối ưu hiệu suất upload.
3. Khi nào nên và không nên sử dụng Multipart Upload?
Multipart Upload phù hợp với các trường hợp cần tải lên tệp lớn hoặc truyền dữ liệu qua kết nối có nguy cơ gián đoạn.
Một số tình huống nên sử dụng gồm:
- Sao lưu dữ liệu: Upload các tệp backup cơ sở dữ liệu, bản sao máy chủ hoặc dữ liệu ứng dụng có dung lượng lớn lên Object Storage.
- Lưu trữ video và media: Truyền video độ phân giải cao, tệp ghi hình và nội dung đa phương tiện.
- Lưu trữ dataset: Upload tập dữ liệu phục vụ phân tích, AI/ML hoặc xử lý dữ liệu lớn.
- Kết nối mạng không ổn định: Giảm lượng dữ liệu phải truyền lại khi một phần của quá trình upload thất bại.
Ngược lại, với các tệp nhỏ, upload một lần thường đơn giản và ít tốn tài nguyên hơn. Việc chia tệp thành nhiều part còn tạo thêm request, bước quản lý phiên và chi phí xử lý. Vì vậy, không cần sử dụng Multipart Upload cho mọi tệp.

Multipart Upload hoạt động như thế nào?
Multipart Upload hoạt động theo ba giai đoạn chính: khởi tạo phiên, tải từng part và hoàn tất hoặc hủy phiên. Trong toàn bộ quy trình, Upload ID được sử dụng để xác định các part thuộc cùng một phiên upload.
Bước 1: Khởi tạo phiên và nhận Upload ID
Trước khi tải dữ liệu, ứng dụng gửi yêu cầu CreateMultipartUpload đến hệ thống Object Storage.
Yêu cầu này khởi tạo một phiên Multipart Upload và trả về Upload ID. Đây là mã định danh duy nhất của phiên, được sử dụng trong các request tiếp theo để hệ thống xác định những part cần xử lý.
Ở bước này, ứng dụng cũng có thể khai báo các metadata và thông tin liên quan đến object như Content-Type, cache control hoặc các thuộc tính được dịch vụ hỗ trợ.
Ví dụ, khi upload tệp video video-backup.mp4, ứng dụng khởi tạo phiên cho bucket media-storage và nhận được Upload ID. Từ đây, mọi part của tệp sẽ được gắn với phiên này.
Bước 2: Upload từng part với Part Number và ETag
Sau khi có Upload ID, ứng dụng chia dữ liệu thành các part và gửi từng phần bằng API UploadPart.
Mỗi part cần có hai thông tin quan trọng:
- Part Number: Số thứ tự của part trong object, thường nằm trong khoảng từ 1 đến 10.000 theo giới hạn Amazon S3.
- ETag: Giá trị định danh được hệ thống trả về sau khi nhận part thành công. Ứng dụng cần lưu lại ETag cùng Part Number để sử dụng khi hoàn tất phiên upload.
Các part có thể được tải lên song song hoặc lần lượt tùy cấu hình của ứng dụng. Nếu một part thất bại, ứng dụng có thể gửi lại part tương ứng bằng cùng Part Number.
Nếu tải lại thành công một part với cùng Part Number, phiên upload sẽ sử dụng phiên bản part mới nhất được ghi nhận cho số thứ tự đó.
Một lưu ý quan trọng là ETag không mặc định tương đương MD5 checksum của dữ liệu. Vì vậy, không nên sử dụng ETag như một giá trị MD5 phổ quát để xác minh tính toàn vẹn của toàn bộ tệp.
Bước 3: Hoàn tất hoặc hủy phiên upload
Sau khi các part cần thiết được tải lên thành công, ứng dụng gửi yêu cầu CompleteMultipartUpload.
Request này chứa danh sách Part Number và ETag tương ứng. Hệ thống lưu trữ sử dụng danh sách đó để kiểm tra và ghép các part thành một object hoàn chỉnh.
Nếu không muốn tiếp tục upload, ứng dụng có thể gọi AbortMultipartUpload để hủy phiên. Các part chưa hoàn tất thuộc phiên sẽ được giải phóng theo cơ chế của dịch vụ.
Trong trường hợp cần kiểm tra tiến trình, ứng dụng có thể sử dụng ListParts để xem những part đã được tải lên. Nếu cần tìm các phiên chưa hoàn tất trong bucket, có thể sử dụng ListMultipartUploads.
Các API quan trọng trong Multipart Upload:
| API | Vai trò |
| CreateMultipartUpload | Khởi tạo phiên và nhận Upload ID |
| UploadPart | Upload một part của object |
| ListParts | Liệt kê các part đã tải lên trong một phiên |
| CompleteMultipartUpload | Hoàn tất phiên và tạo object |
| AbortMultipartUpload | Hủy phiên upload chưa hoàn tất |
| ListMultipartUploads | Liệt kê các phiên Multipart Upload chưa hoàn tất |
Giới hạn kỹ thuật cần biết
Multipart Upload có các giới hạn về dung lượng object, số lượng part và kích thước từng part. Khi triển khai, cần kiểm tra giới hạn của nhà cung cấp Object Storage thay vì mặc định áp dụng toàn bộ thông số của Amazon S3.
1. Các giới hạn Multipart Upload theo chuẩn Amazon S3
Bảng dưới đây tổng hợp các giới hạn tham chiếu của Amazon S3:
| Thông số | Giới hạn |
| Dung lượng object tối đa | 48,8 TiB |
| Số part tối đa | 10.000 |
| Kích thước part tối thiểu | 5 MiB |
| Kích thước part tối đa | 5 GiB |
| Kích thước part cuối cùng | Không có mức tối thiểu |
| Số part trả về mỗi lần ListParts | 1.000 |
| Số phiên trả về mỗi lần ListMultipartUploads | 1.000 |
Một số điểm cần chú ý:
- Mỗi part, ngoại trừ part cuối cùng, phải đạt tối thiểu 5 MiB.
- Kích thước một part không được vượt quá 5 GiB.
- Một phiên Multipart Upload không được vượt quá 10.000 part.
- Khi danh sách part hoặc phiên upload vượt quá số lượng trả về trong một lần gọi API, ứng dụng cần sử dụng cơ chế phân trang để lấy những kết quả tiếp theo.
Các giới hạn trên là thông số của Amazon S3. Với dịch vụ S3 Compatible, nhà cung cấp có thể áp dụng giới hạn khác về kích thước object, part hoặc số lượng request. Cần kiểm tra tài liệu kỹ thuật trước khi thiết kế quy trình upload.
Cách chọn kích thước part phù hợp
Kích thước part ảnh hưởng đến số lượng request, thời gian upload, khả năng retry và mức tiêu thụ tài nguyên khi truyền dữ liệu song song.
Để lựa chọn kích thước phù hợp, trước tiên cần tính số part dựa trên dung lượng tệp và kích thước mỗi part.
Công thức:
N = ceil(S / P)
Trong đó:
- N: Số part cần tạo.
- S: Dung lượng tệp.
- P: Kích thước mỗi part.
- ceil: Hàm làm tròn lên số nguyên gần nhất.
Ví dụ, cần upload một tệp có dung lượng 100 GiB lên Amazon S3. Nếu chọn kích thước mỗi part là 100 MiB, số part cần thiết là:
N = 100 × 1.024 / 100 = 1.024 part.
Số lượng này vẫn nằm trong giới hạn tối đa 10.000 part của Amazon S3.
Nếu chọn part size quá nhỏ, hệ thống sẽ phải xử lý nhiều request hơn, làm tăng overhead và thời gian quản lý phiên. Ngược lại, part quá lớn có thể khiến việc retry tốn nhiều băng thông hơn khi xảy ra lỗi.
Khi cấu hình thực tế, nên cân nhắc:
- Dung lượng tệp lớn nhất dự kiến cần upload.
- Giới hạn số part của dịch vụ.
- Tốc độ và độ ổn định của kết nối mạng.
- Số lượng luồng upload đồng thời.
- Bộ nhớ RAM có thể cấp cho tiến trình upload.
Với hệ thống thường xuyên truyền dữ liệu lớn, nên thử nghiệm nhiều kích thước part trên môi trường thực tế để tìm cấu hình phù hợp thay vì chỉ chọn một giá trị cố định cho mọi trường hợp.
Hướng dẫn Multipart Upload với các công cụ phổ biến
Có nhiều cách triển khai Multipart Upload tùy vào nhu cầu sử dụng. AWS CLI và rclone phù hợp với thao tác upload từ máy chủ hoặc môi trường dòng lệnh, trong khi SDK cho phép tích hợp trực tiếp vào ứng dụng.
1. Sử dụng AWS CLI
AWS CLI cung cấp hai nhóm lệnh chính: lệnh cấp cao tự động xử lý Multipart Upload và lệnh cấp thấp cho phép kiểm soát từng bước của quy trình.
Cách 1: Sử dụng lệnh cấp cao
Lệnh aws s3 cp có thể tự động chuyển sang Multipart Upload khi tệp đạt ngưỡng cấu hình của CLI.
Ví dụ:
aws s3 cp video-backup.mp4 s3://media-storage/backups/Lệnh trên upload tệp video-backup.mp4 lên bucket media-storage, thư mục backups.
Người dùng có thể cấu hình ngưỡng chuyển sang Multipart Upload và kích thước part trong file cấu hình AWS CLI hoặc thông qua các tham số phù hợp của lệnh.
Ví dụ cấu hình:
[default]
s3 =
multipart_threshold = 100MB
multipart_chunksize = 100MBTrong đó:
- multipart_threshold: Ngưỡng dung lượng để CLI sử dụng Multipart Upload.
- multipart_chunksize: Kích thước mỗi part khi thực hiện upload.
Lưu ý: Đây là cấu hình ví dụ, cần điều chỉnh theo dung lượng tệp và tài nguyên máy chủ. Với các dịch vụ S3 Compatible, cần cấu hình endpoint và thông tin xác thực tương ứng.

Cách 2: Thao tác Multipart Upload từng bước
Nếu cần kiểm soát chi tiết quá trình, có thể sử dụng các lệnh cấp thấp của AWS CLI.
Bước 1: Khởi tạo phiên upload
aws s3api create-multipart-upload \
--bucket media-storage \
--key backups/video-backup.mp4Kết quả trả về có trường UploadId. Cần lưu giá trị này để sử dụng trong những bước tiếp theo.
Bước 2: Upload từng part
aws s3api upload-part \
--bucket media-storage \
--key backups/video-backup.mp4 \
--part-number 1 \
--body part1.bin \
--upload-id YOUR_UPLOAD_IDSau khi upload thành công, hệ thống trả về ETag. Cần lưu ETag cùng Part Number.
Bước 3: Hoàn tất phiên upload
Tạo file parts.json chứa danh sách part đã tải thành công:
{
"Parts": [
{
"ETag": "\"ETAG_PART_1\"",
"PartNumber": 1
},
{
"ETag": "\"ETAG_PART_2\"",
"PartNumber": 2
}
]
}Sau đó gọi lệnh:
aws s3api complete-multipart-upload \
--bucket media-storage \
--key backups/video-backup.mp4 \
--upload-id YOUR_UPLOAD_ID \
--multipart-upload file://parts.jsonNếu muốn hủy phiên trước khi hoàn tất:
aws s3api abort-multipart-upload \
--bucket media-storage \
--key backups/video-backup.mp4 \
--upload-id YOUR_UPLOAD_IDCác lệnh trên minh họa quy trình thao tác thủ công. Khi sử dụng với dữ liệu thực tế, cần lưu đầy đủ ETag, kiểm tra trạng thái từng part và xử lý trường hợp request bị gián đoạn.
2. Cấu hình Multipart Upload bằng rclone
rclone là công cụ dòng lệnh hỗ trợ đồng bộ và truyền dữ liệu giữa nhiều hệ thống lưu trữ, trong đó có Amazon S3 và các dịch vụ tương thích S3.
Một số tham số quan trọng khi cấu hình Multipart Upload gồm:
| Tham số | Chức năng |
| –s3-upload-cutoff | Ngưỡng dung lượng để chuyển sang Multipart Upload |
| –s3-chunk-size | Kích thước mỗi part |
| –s3-upload-concurrency | Số part được upload đồng thời |
Ví dụ:
rclone copy ./backups s3remote:media-storage/backups \
--s3-upload-cutoff 100M \
--s3-chunk-size 100M \
--s3-upload-concurrency 4Trong ví dụ này:
- Các tệp đạt ngưỡng cấu hình sẽ được upload theo cơ chế Multipart Upload.
- Mỗi part có kích thước 100 MiB.
- Tối đa 4 part được truyền đồng thời trên mỗi tệp.
Cần lưu ý rằng số luồng đồng thời càng lớn thì mức tiêu thụ RAM và băng thông càng cao. Với tệp lớn, bộ nhớ sử dụng có thể tăng đáng kể do mỗi luồng cần giữ dữ liệu part trong quá trình truyền.
Vì vậy, không nên tăng –s3-upload-concurrency tùy ý nếu máy chủ có dung lượng RAM hạn chế.
3. Thao tác với S3 Browser và s3cmd
Ngoài các công cụ dòng lệnh, người dùng có thể sử dụng giao diện đồ họa hoặc tiện ích quản trị để upload dữ liệu lên Object Storage.
- S3 Browser là công cụ quản lý dữ liệu S3 thông qua giao diện đồ họa. Người dùng có thể cấu hình tài khoản, bucket và thực hiện upload tệp trực tiếp. Khả năng sử dụng Multipart Upload và các tùy chọn điều chỉnh phụ thuộc vào phiên bản công cụ.
- s3cmd là tiện ích dòng lệnh hỗ trợ thao tác với hệ thống lưu trữ tương thích S3. Công cụ có thể được sử dụng để upload, download, đồng bộ và quản lý dữ liệu.
Ví dụ:
s3cmd put video-backup.mp4 s3://media-storage/backups/Khi sử dụng các công cụ này, cần kiểm tra tài liệu phiên bản đang cài đặt để xác định ngưỡng Multipart Upload, kích thước part, số luồng và khả năng tiếp tục phiên bị gián đoạn. Không nên mặc định mọi công cụ đều cung cấp cùng mức kiểm soát đối với phiên upload.
4. Triển khai Multipart Upload bằng Python boto3 SDK
Với ứng dụng Python, boto3 cung cấp các API để triển khai Multipart Upload trực tiếp.
Ví dụ dưới đây minh họa cách khởi tạo phiên, upload các part và hoàn tất object:
import boto3
import math
s3 = boto3.client("s3")
bucket = "media-storage"
key = "backups/video-backup.mp4"
file_path = "video-backup.mp4"
part_size = 100 * 1024 * 1024 # 100 MiB
# 1. Khởi tạo phiên
response = s3.create_multipart_upload(
Bucket=bucket,
Key=key
)
upload_id = response["UploadId"]
parts = []
try:
# 2. Đọc và upload từng part
with open(file_path, "rb") as file:
part_number = 1
while True:
data = file.read(part_size)
if not data:
break
result = s3.upload_part(
Bucket=bucket,
Key=key,
UploadId=upload_id,
PartNumber=part_number,
Body=data
)
parts.append({
"PartNumber": part_number,
"ETag": result["ETag"]
})
part_number += 1
# 3. Hoàn tất phiên
s3.complete_multipart_upload(
Bucket=bucket,
Key=key,
UploadId=upload_id,
MultipartUpload={"Parts": parts}
)
print("Upload completed successfully")
except Exception:
# Hủy phiên nếu quá trình xử lý thất bại
s3.abort_multipart_upload(
Bucket=bucket,
Key=key,
UploadId=upload_id
)
raiseTrong ví dụ trên, ứng dụng đọc tệp theo từng khối 100 MiB, upload từng part và lưu lại ETag để hoàn tất phiên.
Đây là ví dụ tuần tự để giúp người mới dễ hiểu quy trình. Khi triển khai hệ thống thực tế, có thể sử dụng cơ chế upload song song, retry có kiểm soát và lưu trạng thái phiên để tiếp tục sau khi ứng dụng khởi động lại.
Ngoài ra, nếu sử dụng endpoint S3 Compatible, cần cấu hình endpoint URL, thông tin xác thực và các tùy chọn kết nối phù hợp với nhà cung cấp.
Quản lý part dở dang và chi phí lưu trữ
Một phiên Multipart Upload chưa hoàn tất vẫn có thể giữ lại những part đã tải lên. Các part này tiếp tục chiếm dung lượng lưu trữ cho đến khi phiên được hoàn tất hoặc hủy theo cơ chế của dịch vụ.
Do đó, quản lý phiên upload dở dang là công việc cần thiết để tránh tích tụ dữ liệu không còn sử dụng.
1. Cách liệt kê và hủy phiên upload dở dang
Để kiểm tra các phiên chưa hoàn tất, có thể sử dụng API ListMultipartUploads.
Ví dụ với AWS CLI:
aws s3api list-multipart-uploads \
--bucket media-storageKết quả trả về danh sách các phiên Multipart Upload đang tồn tại, bao gồm thông tin Key và Upload ID.
Để kiểm tra các part thuộc một phiên cụ thể:
aws s3api list-parts \
--bucket media-storage \
--key backups/video-backup.mp4 \
--upload-id YOUR_UPLOAD_IDNếu xác định phiên không còn cần thiết, có thể hủy bằng lệnh:
aws s3api abort-multipart-upload \
--bucket media-storage \
--key backups/video-backup.mp4 \
--upload-id YOUR_UPLOAD_IDKhi quản lý số lượng lớn phiên upload, nên xây dựng quy trình kiểm tra và dọn dẹp định kỳ thay vì xử lý thủ công từng phiên.
2. Tự động dọn part bằng Lifecycle Rule
Để tránh phải kiểm tra và hủy từng phiên upload, người dùng có thể cấu hình Lifecycle Rule với hành động AbortIncompleteMultipartUpload.
Cơ chế này cho phép hệ thống tự động hủy các phiên Multipart Upload chưa hoàn tất sau một khoảng thời gian được thiết lập.
Ví dụ, có thể cấu hình tự động hủy những phiên upload chưa hoàn tất sau 7 ngày. Khoảng thời gian thực tế nên dựa trên thời gian upload thông thường và chính sách vận hành của hệ thống.
Ví dụ cấu hình Lifecycle Rule:
{
"Rules": [
{
"ID": "AbortIncompleteUploads",
"Status": "Enabled",
"Filter": {
"Prefix": ""
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 7
}
}
]
}Trong đó:
- ID: Tên định danh của quy tắc.
- Status: Trạng thái kích hoạt.
- Filter: Phạm vi object được áp dụng.
- DaysAfterInitiation: Số ngày kể từ khi khởi tạo phiên để hệ thống thực hiện hủy.
Lifecycle Rule giúp giảm lượng part không còn cần thiết và hạn chế chi phí lưu trữ phát sinh. Tuy nhiên, cần kiểm tra xem nhà cung cấp S3 Compatible có hỗ trợ đầy đủ hành động này hay không.
Các lỗi thường gặp khi dùng Multipart Upload và cách xử lý
Trong quá trình triển khai, Multipart Upload có thể gặp lỗi do kích thước part không hợp lệ, thông tin ETag không chính xác hoặc phiên upload bị gián đoạn.
Bảng dưới đây tổng hợp những lỗi thường gặp và cách xử lý:
| Hiện tượng | Nguyên nhân | Cách xử lý |
| Part bị từ chối do kích thước quá nhỏ | Part không phải part cuối có dung lượng thấp hơn giới hạn tối thiểu | Kiểm tra kích thước part, bảo đảm đáp ứng giới hạn của dịch vụ |
| CompleteMultipartUpload thất bại | ETag hoặc Part Number gửi lên không khớp với part đã upload | Gọi ListParts để kiểm tra và cập nhật lại danh sách part |
| Lỗi khi hoàn tất do danh sách part không đúng thứ tự | Danh sách part trong request không được sắp xếp theo Part Number tăng dần | Sắp xếp danh sách part trước khi gọi CompleteMultipartUpload |
| Upload ID không còn hợp lệ | Phiên đã bị hủy, hết hiệu lực theo chính sách hoặc không tồn tại | Khởi tạo phiên mới và upload lại các part cần thiết |
| Upload bị gián đoạn do mạng | Request thất bại hoặc kết nối bị ngắt trong quá trình truyền | Retry part lỗi, kiểm tra kết nối và sử dụng cơ chế tiếp tục phiên |
| ETag object không trùng MD5 checksum của file gốc | ETag của Multipart Upload không mặc định là MD5 của toàn bộ object | Sử dụng checksum phù hợp để xác minh tính toàn vẹn dữ liệu |
Một điểm cần đặc biệt lưu ý là các part có thể được upload theo thứ tự bất kỳ hoặc song song. Tuy nhiên, khi hoàn tất phiên, danh sách part gửi lên phải được sắp xếp theo Part Number tăng dần.
Bên cạnh đó, ETag không phải lúc nào cũng đại diện cho MD5 checksum của object. Nếu cần xác minh dữ liệu sau khi upload, nên sử dụng cơ chế checksum mà dịch vụ hỗ trợ thay vì chỉ so sánh ETag.
Cách kiểm tra S3 Object Storage có hỗ trợ Multipart Upload tốt không
Khi lựa chọn dịch vụ Object Storage, doanh nghiệp nên kiểm tra các tiêu chí sau để đánh giá khả năng hỗ trợ Multipart Upload:
- Hỗ trợ đầy đủ nhóm API Multipart Upload: Kiểm tra các API CreateMultipartUpload, UploadPart, ListParts, CompleteMultipartUpload, AbortMultipartUpload và ListMultipartUploads để đảm bảo có thể khởi tạo, upload, kiểm tra và quản lý phiên.
- Giới hạn kích thước và số lượng part: Tìm hiểu dung lượng object tối đa, số part tối đa, kích thước part nhỏ nhất và lớn nhất để lựa chọn cấu hình upload phù hợp.
- Upload song song và xử lý gián đoạn: Kiểm tra khả năng upload nhiều part đồng thời, retry khi gặp lỗi mạng và tiếp tục phiên upload mà không phải truyền lại toàn bộ dữ liệu.
- Hỗ trợ Lifecycle Rule: Xác nhận dịch vụ có cho phép tự động hủy các phiên Multipart Upload chưa hoàn tất hay không, giúp hạn chế dữ liệu tồn đọng và chi phí lưu trữ.
- Chính sách tính phí và kiểm tra toàn vẹn dữ liệu: Tìm hiểu cách tính phí đối với part chưa hoàn tất và các cơ chế checksum được hỗ trợ để xác minh dữ liệu sau khi upload.
Ngoài việc kiểm tra tài liệu kỹ thuật, doanh nghiệp nên thử upload một tệp dung lượng lớn trong môi trường thực tế để đánh giá tốc độ truyền tải, độ ổn định, khả năng retry và mức tiêu thụ tài nguyên trước khi đưa vào vận hành.

Multipart Upload trên S3 Object Storage của LANIT
Khi lựa chọn dịch vụ S3 Object Storage, ngoài dung lượng lưu trữ và chi phí, doanh nghiệp cũng cần quan tâm đến khả năng tích hợp với ứng dụng, công cụ quản trị và quy trình truyền dữ liệu hiện có.
S3 Object Storage của LANIT hướng đến nhu cầu lưu trữ dữ liệu tập trung, phục vụ các ứng dụng, hệ thống backup và dữ liệu đa phương tiện. Doanh nghiệp có thể tìm hiểu thêm về dịch vụ, khả năng tích hợp và các thông số kỹ thuật tại trang S3 Object Storage giá rẻ.
Trước khi triển khai Multipart Upload trên môi trường production, nên xác nhận các API, giới hạn part, Lifecycle Rule và chính sách tính phí thực tế với đội ngũ kỹ thuật LANIT để lựa chọn cấu hình phù hợp với nhu cầu sử dụng.
8. Câu hỏi thường gặp về Multipart Upload
Multipart Upload có bắt buộc phải dùng không?
Không. Multipart Upload không bắt buộc đối với mọi tệp. Cơ chế này phù hợp hơn với dữ liệu dung lượng lớn, kết nối mạng không ổn định hoặc ứng dụng cần upload song song. Với tệp nhỏ, upload bằng một request thông thường thường đơn giản và hiệu quả hơn.
File bao nhiêu MB thì nên dùng Multipart Upload?
Theo khuyến nghị của Amazon S3, nên cân nhắc Multipart Upload khi object có dung lượng khoảng 100 MB trở lên. Tuy nhiên, đây không phải ngưỡng bắt buộc. Việc lựa chọn còn phụ thuộc vào tốc độ mạng, kích thước tệp và khả năng xử lý của ứng dụng.
Multipart Upload có luôn giúp tăng tốc độ upload không?
Không phải lúc nào cũng vậy. Multipart Upload có thể tăng tốc khi các part được truyền song song và đường truyền có đủ băng thông. Tuy nhiên, việc chia tệp cũng tạo thêm request và overhead xử lý. Với tệp nhỏ hoặc mạng có độ trễ thấp, upload thông thường có thể hiệu quả hơn.
Một part bị lỗi giữa chừng thì xử lý thế nào?
Ứng dụng có thể tải lại part bị lỗi bằng cách sử dụng cùng Upload ID và Part Number. Những part đã tải thành công không cần truyền lại nếu vẫn còn trong phiên. Sau đó, ứng dụng cập nhật ETag và tiếp tục hoàn tất phiên khi đủ các part cần thiết.
Part dở dang có bị tính phí lưu trữ không?
Có thể. Trên Amazon S3, các part đã upload nhưng phiên chưa hoàn tất vẫn bị tính phí lưu trữ cho đến khi được Complete hoặc Abort. Với nhà cung cấp S3 Compatible, cần kiểm tra chính sách tính phí cụ thể. Nên cấu hình Lifecycle Rule để tự động dọn các phiên không hoàn tất.
Multipart Upload có dùng được với các dịch vụ S3 Compatible không?
Có, nếu dịch vụ hỗ trợ nhóm API Multipart Upload tương ứng. Tuy nhiên, mức độ tương thích không đồng nhất giữa các nhà cung cấp. Người dùng cần kiểm tra API, giới hạn part, khả năng upload song song và các tính năng quản lý phiên trước khi triển khai.
Multipart Upload là giải pháp hữu ích khi cần truyền tải các tệp dung lượng lớn lên S3 Object Storage. Cơ chế chia tệp thành nhiều part giúp upload song song, retry từng phần và giảm rủi ro khi kết nối bị gián đoạn.
Để triển khai hiệu quả, cần lựa chọn kích thước part phù hợp, quản lý chính xác Upload ID và ETag, đồng thời hoàn tất hoặc hủy các phiên upload đúng cách. Việc thiết lập Lifecycle Rule cũng giúp hạn chế part dở dang và chi phí lưu trữ phát sinh.











