الجمعة، 12 نوفمبر 2010

قم بتسريع التنزيل بأستخدام curl في لينكس

ما يقوم به برنامج تسريع التنزيل هو تقسيم الملف ألى أجزاء و تنزيل هذه الأجزاء في نفس الوقت من السيرفر بأستخدام أتصالات متعددة بنفس السيرفر بدل أستخدام أتصال واحد, و في هذا الدرس سنتخدم اﻷداة curl لتسريع التنزيل بأستخدام الخاصية "range--" التي تمكنك من تحديد القسم المراد تنزيله بأستخدام المدى بالبايت "bytes" :

تثبيت البرنامج curl على لينكس :
أستخدم اﻷمر التالي :

apt-get install curl

1-الحصول على حجم الملف بالبايت :

تستطيع الحصول على حجم الملف بالبايت بأستخدام اﻷمر التالي :

curl --head http://www.example.com/1.avi

في حالة نجاح الأتصال سيكون الرد كالتالي :

HTTP/1.1 200 OK
Date: Fri, 12 Nov 2010 14:49:11 GMT
Server: Apache/2.2.12 (Ubuntu)
Last-Modified: Fri, 12 Nov 2010 08:16:57 GMT
ETag: "3ae-2bb96000-494d6b6d12f04"
Accept-Ranges: bytes
Content-Length: 733569024
Content-Type: video/x-msvideo
أبحث عن التعليمة "Content-Length: 733569024" التي ترجع حجم الملف بالبايت .
2-تنزيل الملف بأستخدام الأمر "curl" على شكل ملفات منفصلة :
قم بأستخدام محرر الملفات في نظامك و قم بكتابة التالي : 
curl --range 0-100000000 http://example.com/1.avi -o 1.avi.part1
curl --range 100000001-300000000 http://example.com/1.avi -o 1.avi.part2
curl --range 30000001-5000000000 http://example.com/1.avi -o 1.avi.part3
curl --range 50000001- http://example.com/1.avi -o 1.avi.part4

*ملاحظة(قم بأضافة "&" في نهاية كل سطر برمجي )
قم بحفظ الملف بأسم "downloader.sh" ثم نفذ الأمر التالي لتحوليه ألى ملف تنفيذي :
chmod +x downloader.sh
downloader.sh/.
تلاحظ أن في السطر اﻷخير أستخدمنا المدى "-5000001" مما يعني أنه سيبدأ التنزيل من البايت 50000001 ألى نهاية  الملف .


بعد أنتهاء التنزيل أستخدم الأمر "cat" لدمج الملفات كالتالي:
cat 1.avi.part* >>1.avi
 

ليست هناك تعليقات:

إرسال تعليق