با آپلود چندبخشی شما می‌توانید یک آبجکت بزرگ را به صورت تکه‌تکه در سرویس آبجکت استوریج آپلود کنید. این قابلیت مزایای متعددی از جمله بهبود سرعت، انعطاف‌پذیری و امکان بازیابی سریع از خطاهای شبکه را ارائه می‌دهد. هر تکه یا بخش، قسمت پیوسته‌ای از داده‌های یک آبجکت است که می‌توان آن را مستقل و به ترتیب دلخواه آپلود کرد. در صورت ناموفق بودن انتقال هر بخش، می‌توانید آن را بدون تاثیر بر سایر بخش‌ها مجددا آپلود کنید.

مزایای آپلود چندبخشی

  • افزایش سرعت و کارایی در آپلود فایل‌های حجیم
  • انعطاف‌پذیری در ترتیب ارسال بخش‌ها
  • امکان بازیابی بخش‌های ناموفق بدون نیاز به آپلود مجدد کل فایل

مراحل آپلود چندبخشی با AWS CLI

ساخت فرایند آپلود

ابتدا یک فرایند آپلود چندبخشی ایجاد کنید. این فرایند یک شناسه منحصربه‌فرد (UploadId) تولید می‌کند که در مراحل بعدی مورد نیاز خواهد بود.

aws s3api --endpoint-url ENDPOINT create-multipart-upload --bucket BUCKET_NAME --key OBJECT_NAME

خروجی نمونه:

{
    "Bucket": "BUCKET_NAME",
    "Key": "OBJECT_NAME",
    "UploadId": "2~9GY-ZeosU-ru97KCHgCSJASOI68HPzK"
}

آپلود بخش‌ها

با استفاده از شناسه (UploadId) دریافت‌شده، می‌توانید بخش‌های مختلف را به‌طور مستقل و با ترتیب دلخواه آپلود کنید.

aws s3api --endpoint ENDPOINT upload-part --bucket BUCKET_NAME --upload-id "2~9GY-ZeosU-ru97KCHgCSJASOI68HPzK" --key OBJECT_NAME --part-number 1 --body FILENAME_part_1

خروجی نمونه:

{
    "ETag": "331ae58ad45a9869d4af8031d53b35c2"
}

لیست کردن فرایندهای آپلود چندبخشی

برای گرفتن لیستی از همه‌ی فرآیندهای آپلود چندبخشی جاری در یک باکت، می‌توانید از دستور زیر استفاده کنید:

aws s3api –-endpoint ENDPOINT list-multipart-uploads --bucket BUCKET_NAME

تکمیل آپلود

پس از آپلود همه بخش‌ها، فرآیند آپلود را تکمیل کنید.

aws s3api --endpoint ENDPOINT complete-multipart-upload --bucket BUCKET_NAME --key OBJECT_NAME --upload-id "2~9GY-ZeosU-ru97KCHgCSJASOI68HPzK" --multipart-upload file://multipart.json

ساختار فایل multipart.json:

{
    "Parts": [
      { "ETag": "331ae58ad45a9869d4af8031d53b35c2", "PartNumber": 1 },
      { "ETag": "ec8bb3b24d5b0f1b5bdf8c8f0f541ee6", "PartNumber": 2 },
      { "ETag": "173d26967d3f7c4458aed48044efd2c1", "PartNumber": 3 }
    ]
}

لغو آپلود

در صورت نیاز، می‌توانید فرآیند آپلود را لغو کنید.

aws s3api --endpoint ENDPOINT abort-multipart-upload --bucket BUCKET_NAME --upload-id "2~9GY-ZeosU-ru97KCHgCSJASOI68HPzK" --key OBJECT_NAME

نکات مهم

  • هزینه: تا زمانی که فرآیند آپلود تکمیل یا لغو نشود، بخش‌های آپلود شده مشمول هزینه خواهند شد.
  • آستانه حجم: حداکثر حجم مجاز برای آپلود در یک درخواست واحد 5GB است.
  • AWS CLI: کلاینت AWS CLI به‌طور پیش‌فرض فایل‌های حجیم را به صورت چندبخشی آپلود می‌کند.

اطلاع از تنظیمات بیشتر: برای آشنایی بیشتر با پیکربندی‌های مربوط به سرویس S3 در AWS CLI، این راهنما را مطالعه کنید.