پروتکل TUS، آپلود Resumable فایلها
سلام :) توی این مقاله یک توضیح مختصر به همراه مثال براتون آماده کردم و در مقالات بعد اطلاعات کامل و سورس کدها را خدمتتان قرار می دم
خب بریم سراغ پروتکل tus, یک پروتکل متن باز برای انتقال فایل ها در بستر اینترنت طراحی شده است که قابلیت انتقال بخش به بخش داده ها یا همون chunk کردن فایل را فراهم میکند پس کل فایل به صورت یکجا ارسال نمی شود و به صورت قطعات کوچیک تر به سمت سرور ارسال می شوند که خب قابلیت های فراوانی را برای ما به ارمغان می آورد :) مثل قابلیت توقف و ادامه آپلود، از سر گیری آپلود بعد از قطع شدن ارتباط کلاینت و سرور، ارسال فایل های حجیم بدون نگرانی در اختلال اینترنت.
پروتکل tus یک پروتکل استاندارد برای ارسال فایل بین کلاینت و سرور است که بر پایه ی HTTPS/HTTP است و برای پلتفرمهای مختلف مانند مرورگرها و اپلیکیشنهای دسکتاپ و موبایل طراحی و توسعه داده شده است.
روند کلی کار tus به شکل زیر است:
- ایجاد یک آپلود جدید: کلاینت باید یک درخواست POST به آدرس سرور Tus بفرستد تا یک آپلود جدید را آغاز کند. سرور یک شناسه یکتا مثلا یک uuid تولید و به عنوان محل ذخیره سازی فایل در هدری به نام Location قرار میدهد و پاسخ با کد وضعیت 201 Created به کلاینت ارسال میکند.
- ارسال قطعات فایل: کلاینت باید قطعات فایل را به سرور ارسال کند. این ارسال قطعه به قطعه انجام می شود و از متد PATCH برای انتقال قطعه استفاده می شود. هر قطعه باید با شناسه آپلود و موقعیت قطعه مشخص شده در هدر Upload-Offset فرستاده شود. سرور باید قطعه را در مکان مناسب ذخیره کند و اندازه و موقعیت قطعه(
Upload-Offset
) را در پاسخ به کلاینت برگرداند. - تکمیل آپلود: هنگامی که کلاینت تمام قطعات فایل را ارسال کرد، باید یک درخواست PATCH اضافی را با موقعیت Upload-Offset برابر با اندازه کل فایل ارسال کند. سرور باید آپلود را تکمیل کند و فایل را در مکان نهایی ذخیره کند.
در نهایت، باید توجه داشته باشید که هر نوع آپلود در پروتکل Tus یک شناسه منحصر به فرد دارد. این شناسه برای ادامه آپلود، متوقف کردن آپلود یا بازیابی وضعیت آپلود استفاده می شود.
هرچند در این بین فرایند ها و موارد بیشتر از چیزی که در این مقاله مطرح شد وجود دارد که در مقالات بعد بیستر به آن ها خواهیم پرداخت.
با استفاده از این مراحل، می توانید با موفقیت فایل ها را با استفاده از پروتکل Tus آپلود کنید.
مطلبی دیگر از این انتشارات
آموزش مقدمات AOP در Spring
مطلبی دیگر از این انتشارات
RabbitMQ چیست؟ استفاده از RabbitMQ در Spring Boot
مطلبی دیگر از این انتشارات
معرفی DTO, Java Bean و POJO در جاوا