খারাপ সংযোগের জন্য বড় ফাইল ডাউনলোড করুন


30

কোনও বিদ্যমান সরঞ্জাম আছে, যা খারাপ সংযোগের জন্য বড় ফাইলগুলি ডাউনলোড করতে ব্যবহার করা যেতে পারে?

আমাকে নিয়মিত তুলনামূলকভাবে একটি ছোট ফাইল ডাউনলোড করতে হবে: 300 এমবি, তবে ধীর (80-120 কেবিট / সেকেন্ড) টিসিপি সংযোগটি এলোমেলোভাবে 10-120 সেকেন্ড পরে ব্রেক হয়। (এটি একটি বড় কোম্পানির নেটওয়ার্ক।

এখনও অবধি আমি প্যাকরুলের একটি পরিবর্তিত সংস্করণ ব্যবহার করেছি: https://github.com/brunoborges/pcurl

আমি এই লাইনটি পরিবর্তন করেছি:

curl -s --range ${START_SEG}-${END_SEG} -o ${FILENAME}.part${i} ${URL} &

এটি:

curl -s --retry 9999 --retry-delay 3 --speed-limit 2048 --speed-time 10 \
    --retry-max-time 0 -C - --range ${START_SEG}-${END_SEG} -o ${FILENAME}.part${i} ${URL} &

আমাকে যুক্ত করতে হয়েছিল --speed-limit 2048 --speed-time 10কারণ সংযোগটি বেশিরভাগ মিনিটের জন্য স্থির থাকে যখন এটি ব্যর্থ হয়।

তবে সম্প্রতি এমনকি এই স্ক্রিপ্টটি সম্পূর্ণ করতে পারে না।

একটি সমস্যা হ'ল এটি -C -অংশটিকে উপেক্ষা করার মতো বলে মনে হচ্ছে , তাই এটি পুনরায় চেষ্টা করার পরে বিভাগটি "চালিয়ে" যায় না। এটি সম্পর্কিত টেম্প ফাইলটি কেটে ফেলা বলে মনে হয় এবং প্রতিটি ব্যর্থতার পরে শুরু থেকেই শুরু হয়। (আমি মনে করি --rangeএবং -Cবিকল্পগুলি একসাথে ব্যবহার করা যাবে না))

অন্য সমস্যাটি হ'ল এই স্ক্রিপ্টটি একই সাথে সমস্ত বিভাগগুলি ডাউনলোড করে। এটিতে 300 টি বিভাগ থাকতে পারে না যার মধ্যে একবারে 10 টি ডাউনলোড করা হচ্ছে।

আমি এই নির্দিষ্ট উদ্দেশ্যে সি # তে একটি ডাউনলোড সরঞ্জাম লেখার কথা ভাবছিলাম, তবে যদি কোনও বিদ্যমান সরঞ্জাম থাকে বা কার্ল কমান্ডটি বিভিন্ন পরামিতিগুলির সাথে সঠিকভাবে কাজ করতে পারে তবে আমি কিছু সময় ব্যয় করতে পারতাম।

আপডেট 1: অতিরিক্ত তথ্য: সমান্তরাল ডাউনলোড কার্যকারিতা অপসারণ করা উচিত নয়, কারণ তাদের সংযোগ প্রতি ব্যান্ডউইথ সীমা (80-120 কেবিটস / সেকেন্ড, বেশিরভাগ 80) রয়েছে, সুতরাং 10 সংযোগগুলি 10 বার স্পিডআপের কারণ হতে পারে। আমাকে ১ ঘন্টা মধ্যে ফাইল ডাউনলোড শেষ করতে হবে, কারণ ফাইলটি প্রতি ঘন্টা তৈরি করা হয়।


4
FTP / HTTP- র মাধ্যমে ফাইলগুলি অ্যাক্সেস করার একমাত্র বিকল্প? আপনি এমন কিছু ব্যবহার করতে পারবেন না rsync(যা আপনাকে স্থানান্তর পুনরায় আরম্ভ করতে দেবে)? lftpএছাড়াও স্বয়ংক্রিয়ভাবে সংক্রমণ পুনরায় চালু করার অনুমতি দেয়।
কুসালানন্দ

হ্যাঁ, তারা কিছু বছর আগে তাদের সার্ভারগুলিতে এইচটিটিপিএসের সমস্ত অ্যাক্সেসকে সীমাবদ্ধ করেছিল। BTW সার্ভার নির্দিষ্ট অবস্থানে পুনরায় আরম্ভ করার অনুমতি দেয়, পিসিআরএল এটি ব্যবহার করে।
বিড়ালছানা

1
আপনি স্ক্রিপ্টিংয়ের জন্য কমান্ডলাইন সরঞ্জামটি সন্ধান করছেন? কারণ অন্যথায় আমি কেবল ফাইলজিলা বা অনুরূপ একটি এফটিপি / এসএফপি ক্লায়েন্ট ব্যবহার করব যা কোনও ডাউনলোড পুনরায় চালু করতে সমর্থন করে।
বাকুরিউ

5
"একটি অপেক্ষাকৃত ছোট ফাইল: 300 এমবি" আহ, আমাকে বুড়ো করে তোলার উপায় :)
মনিকার সাথে লাইটনেস রেস

4
এছাড়াও, বাহ, এটি .. একটি ভীষণ নেটওয়ার্ক।
মনিকার সাথে লাইটনেস রেস

উত্তর:


33

lftp( উইকিপিডিয়া ) এটির জন্য ভাল। এটি প্রচুর প্রোটোকল সমর্থন করে, একাধিক সমান্তরাল সমান্তরাল সংযোগগুলি ব্যবহার করে ফাইল ডাউনলোড করতে পারে (যেখানে প্যাকেটের প্রচুর ক্ষয়ক্ষতি না হওয়ার কারণে দরকারী) এবং ডাউনলোডগুলি স্বয়ংক্রিয়ভাবে পুনরায় শুরু করতে পারে। এটি স্ক্রিপ্টযোগ্যও।

এখানে সূক্ষ্ম সুরকরণ সহ আপনি এসেছেন (ক্রেডিট):

lftp -c 'set net:idle 10
         set net:max-retries 0
         set net:reconnect-interval-base 3
         set net:reconnect-interval-max 3
         pget -n 10 -c "https://host/file.tar.gz"'

ধন্যবাদ. আমি এটি চেষ্টা করেছি, তবে এটি সমান্তরাল সংযোগগুলি ব্যবহার করার মতো বলে মনে হচ্ছে না:lftp -e 'set net:timeout 15; set net:max-retries 0; set net:reconnect-interval-base 3; set net:reconnect-interval-max 3; pget -n 10 -c "https://host/file.tar.gz"; exit'
বিড়ালছানা

ওহ, আমি যখন "নেট: টাইমআউট" সেটিংসটি সরিয়েছি তখন এটি সমান্তরাল হয়ে উঠেছে। তবে এটি কিছুক্ষণ পরে ধীর হয়ে যায়। আমি মনে করি কারণ সংযোগগুলি "হ্যাং" করতে শুরু করে।
বিড়ালছানা ক্রচিং

1
এটি net:idleসেটিংসের সাথে পুরোপুরি কাজ করে। ধন্যবাদ! আমি আমার সমাধান যোগ করব।
বিড়ালছানা 16

1
নোট করুন যে lftp অন্তর্নিহিত স্থানান্তর প্রোটোকল হিসাবে টরেন্টকে সমর্থন করে। এটা ব্যবহার করো. এটি সমর্থন করে এমন অন্যান্য সমস্ত প্রোটোকল প্রতি-ত্রুটি ত্রুটি সনাক্তকরণ / সংশোধন সমর্থন করে না এবং ত্রুটি সনাক্তকরণ সরবরাহ করতে টিসিপির উপর নির্ভর করে। নোট করুন যে টরেন্টটি টিসিপি ত্রুটি সনাক্তকরণ ব্যবহার করে তবে এর উপরে আপনার পুরো ফাইলের শে 1 হ্যাশ এবং নেটওয়ার্কের মাধ্যমে স্থানান্তরিত প্রতিটি ব্লকও যাচাই করে। আমার অভিজ্ঞতায় একটি 4 জি মুভিতে 4 জি নেটওয়ার্কে
প্রচ্ছন্নভাবে

1
@ স্লেবেটম্যান, এখানে ওপি এইচটিটিপিএস ব্যবহার করে। টিএলএস এইচএমএসি এর মাধ্যমে অতিরিক্ত সততা পরীক্ষা করে (টিসিপির দুর্বল চেকসামের ওপরে) সরবরাহ করে। এছাড়াও HTTP- র সামগ্রীগুলি Content-MD5এবং Digestশিরোনামগুলির সাথে চেকসামিং সামগ্রী বা অংশগুলি (যদিও আমি জানি না lftpসেগুলি সমর্থন করে কিনা বা সেগুলি ওপি'র ক্ষেত্রে ব্যবহার করা হবে কিনা) সমর্থন করে। যে কোনও ক্ষেত্রে, এটি টরেন্টের মতো নয় বলে মনে হচ্ছে ওপি for
স্টাফেন চেজেলাস

12

আমি তোমার পরিস্থিতি আপনার জন্য এই পরীক্ষা পারবেন না, কিন্তু আপনি ব্যবহার করা উচিত নয় --rangeসঙ্গে -C -। এই বিষয়ে ম্যান পৃষ্ঠাটি যা বলতে চাইছে তা এখানে:

কোথায় / কীভাবে স্থানান্তর পুনরায় চালু -C -করবেন curlতা স্বয়ংক্রিয়ভাবে জানতে বলার জন্য ব্যবহার করুন । এরপরে এটি নির্ধারণের জন্য প্রদত্ত আউটপুট / ইনপুট ফাইলগুলি ব্যবহার করে।

পরিবর্তে এটি চেষ্টা করুন:

curl -s --retry 9999 --retry-delay 3 --speed-limit 2048 --speed-time 10 \
    --retry-max-time 0 -C - -o "${FILENAME}.part${i}" "${URL}" &

আমি দৃ strongly়ভাবে সুপারিশ করব যে আপনি সর্বদা আপনার ভেরিয়েবলগুলিকে ডাবল-কোট করুন যাতে শেলটি পার্স করার চেষ্টা না করে। (একটি ইউআরএল বিবেচনা করুন https://example.net/param1=one&param2=two, যেখানে শেলটি মানটি ভাগ করে দেবে &))

ঘটনাক্রমে, 120 কেবি / গুলি প্রায় 1.2 এমবি / সে, যা বিশ্বের অনেক অংশে একটি সাধারণ এক্সডিএসএল আপলোড গতি। প্রতি এমবি 10 সেকেন্ড, তাই পুরো ফাইলের জন্য এক ঘন্টার কম। এত ধীর নয়, যদিও আমি প্রশংসা করি আপনি গতির চেয়ে নির্ভরযোগ্যতার সাথে আরও বেশি উদ্বিগ্ন।


2
ধন্যবাদ. এই পদ্ধতির কাজ করবে, তবে এটি ধীর, কারণ এটি সমান্তরালে ডাউনলোড হচ্ছে না। তাদের প্রতি সংযোগের গতির সীমা রয়েছে এবং আমাকে ডাউনলোডটি 1 ঘন্টার মধ্যে শেষ করতে হবে, কারণ তারা প্রতি ঘন্টা ফাইল তৈরি করে। প্রশ্ন আপডেট করা হচ্ছে।
16-10 pm এ বিড়ালছানা বিছানা


4

বাক্সের বাইরে: একটি আইপ্যাচ রাখুন এবং বিটোরেন্ট ব্যবহার করুন। আপনি টরেন্ট তৈরি করার সময় ব্লকসাইজটিকে ছোট করুন। স্পষ্টতই, ফাইলটি এনক্রিপ্ট করুন যাতে যে কেউ টরেন্ট খুঁজে পায় সে দরকারী কিছুই না পায়।


1
এটি বিরল কর্পোরেশন যা অভ্যন্তরীণভাবে টরেন্টের মাধ্যমে ফাইলগুলি বিতরণ করে।
রন জন

5
যথাযথভাবে। এমনকি যদি সংযোগটি সত্যিই খারাপ হয় এবং ফাইলটি কোনওভাবে ক্ষতিগ্রস্থ হয়, তবে এটি ঠিকঠাক কাজ করা উচিত। প্রো-টিপ: এটি এনক্রিপ্ট করুন, এর নাম পরিবর্তন করে 'কিমকার্ডিশিয়ান ন্যুড। এমপি 4' দিন এবং কয়েক হাজার মানুষ আপনাকে এই সংযোগে সহায়তা করতে দিন। স্বয়ংক্রিয়, বিতরণ ব্যাকআপ বিনামূল্যে! :)
এরিক ডুমিনিল

যেমন লিনাস নিজেই বলেছিলেন - "কেবল উইম্পসই টেপ ব্যাকআপ ব্যবহার করে: আসল পুরুষরা তাদের গুরুত্বপূর্ণ জিনিসগুলি কেবল এফটিপি-তে আপলোড করে, এবং পৃথিবীর বাকী
অংশটিকে এটিরূপে

@ রনজাহান আমি জানি এটি সাধারণত ব্যবহৃত হয় না তবে এর অর্থ এই নয় যে এটি ব্যবহার করা যাচ্ছিল না। বিটোরেন্ট প্রোটোকল খারাপ সংযোগ স্থাপনে খুব ভাল।
লরেন পেচটেল

@ লরেনপেকটেল রিস্কের বন্দরগুলির অনুমোদনের জন্য একটি ওয়ার্ক অর্ডার, বন্দরগুলি খোলার জন্য এনওসি'র জন্য একটি ডাব্লুও, এবং টরেন্ট ক্লায়েন্টগুলি ইনস্টল করার জন্য লিনাক্স এবং উইন্ডোজ দলের জন্য ডব্লুও, এবং অন্য সব ডব্লিউও সেগুলি নিরীক্ষণ করার জন্য যাতে কেবল অনুমোদিত ফাইলগুলি হচ্ছে স্থানান্তরিত. এবং এর কোনওটিই হিপ্পা, পিসিআই বা পয়েন্ট এ থেকে পয়েন্ট বিতে যাওয়ার যে ফাইলটি পয়েন্ট এ থেকে পয়েন্ট সি, ডি, ই, এফ, জি, এইচ, আই এবং জে আগে চলেছে তা বিবেচনায় নেই বি পয়েন্টে পৌঁছানো ঝুঁকি সেই কারণেই অস্বীকার করবে।
রনজাহান

3

আমার আগের চাকরিতেও একই সমস্যা ছিল (একটি (অফিস থেকে) অস্থির সংযোগে 300 জিবি + অফসাইট ডাটাবেস ব্যাকআপ ব্যতীত)। আনুমানিকের চেয়ে বড় ফাইল ডাউনলোড করতে ব্যবহারকারীদের গুরুতর সমস্যা হয়েছিল। সংযোগ শুরুর আগে 1 জিবি। যেহেতু তারা একটি আরডিপি সংযোগে স্ট্যান্ডার্ড উইন্ডোজ অনুলিপি / পেস্ট ফাইলটি ব্যবহার করেছে, তাই অবাক হওয়ার কিছু নেই।

একটি জিনিস আমি জানতে পেরেছি যে, আমাদের ভিপিএন সেটিংসটি নেটওয়ার্ক সেটআপের সাথে পুরোপুরি মেলে না (মূলত এমটিইউ দৈর্ঘ্য)। দ্বিতীয় বিষয়টি হ'ল উইন্ডোজ ফাইল ফাইল কপিয়ারটি ইন্টারনেটে স্টাফ অনুলিপি করার জন্য তৈরি করা হয় না।

আমার প্রথম সমাধানটি একটি সহজ এফটিপি সার্ভার ছিল, তবে এটি সংক্রমণ সময়ের সমস্যাটি প্রায়শই সমাধান করে না (প্রায়শই আমাদের সংযোগে 3-4 ঘন্টা)।

আমার দ্বিতীয় সমাধানটি ছিল সরাসরি ইনহাউস এনএএস-এ ফাইল প্রেরণের জন্য সিঙ্কিংটি ব্যবহার করা । ব্যাকআপগুলি সম্পূর্ণ হওয়ার পরে প্রতি রাতে সিঙ্কিং আমাদের প্রয়োজনীয় সমস্ত কিছু অফিসের এনএএস-এ পাঠিয়ে দেয়। কেবল 3+ ঘন্টা সংক্রমণ সময়ের সমস্যাটিই সমাধান করা যায় নি, তবে কোনও সংকট দেখা দিলে ডেটা কুরিয়ার করতে আমি 1-2 ঘন্টা বাঁচিয়েছিলাম। প্রতিদিন সকাল ৮ টায় ফাইলগুলি নাসিতে আপডেট হবে এবং আমাদের ব্যাকআপ প্রস্তুত ছিল। এমনকি বিশাল ফাইলগুলি (এক পর্যায়ে প্রায় 700 গিগাবাইট ডাটাবেস) থাকা সত্ত্বেও, আমি এখনও কোনও ফাইল দুর্নীতি বা অন্যান্য সমস্যার অভিজ্ঞতা পেতে পারি না ...

সিঙ্কিংটি সেটআপ করা এবং পরিচালনা করা খুব সহজ এবং এটি সমস্ত প্ল্যাটফর্মের জন্য (এমনকি ফোন )ও সহজলভ্য এবং খারাপ সংযোগগুলি খুব ভাল পরিচালনা করতে পারে .. যদি সংযোগ ব্যর্থ হয় তবে সিঙ্কিংটি কয়েক মিনিট অপেক্ষা করে এবং আবার চেষ্টা করে।

আপনার সাথে জিনিসগুলি সিঙ্ক করার জন্য একটি স্থানীয় ফোল্ডার দরকার তবে আপনার ফাইলগুলি আপডেট হওয়ার সাথে সাথেই তা উপলভ্য হবে।

সিঙ্কিংয়ের আরেকটি ভাল বিষয় হ'ল এটি কেবলমাত্র ফাইলের পরিবর্তনগুলি (যেমন একটি ডিফারেনশিয়াল ব্যাকআপের মতো) সিঙ্ক্রোনাইজ করার জন্য সেট করা যেতে পারে ... সম্ভবত আপনার ব্যান্ডউইথ সমস্যার একটি অংশ সমাধান করতে পারে।


সিঙ্কিংয়ের উল্লেখ করার জন্য +1 - ব্যাকআপগুলির জন্য একটি গুগল ড্রাইভ / ড্রপবক্স বিকল্প
এডওয়ার্ড টরভাল্ডস

1

লম্পি সংযোগে ফাইলগুলি স্থানান্তরিত করার জন্য আপনি একটি পুরানো-স্কুল সমাধান বিবেচনা করতে পারেন - zmodem

এটি ফিরিয়ে দেওয়া হয়েছিল যখন 2400 বাড মডেম লোকেরা ফোন তুলে এবং সংযোগটি বোমা ফাটিয়ে দেওয়ার নিয়ম ছিল। একটি চেষ্টা মূল্য হতে পারে।


0

আপনি কেরমিট ব্যবহার করার চেষ্টা করতে পারেন :

কেরমিট প্রোটোকলকে অন্যান্যদের থেকে আলাদা করে এমন বৈশিষ্ট্যটি হ'ল সেটিংসের বিস্তৃত পরিসর যা কোনও দুই ধরণের কম্পিউটারের মধ্যে সংযোগের যে কোনও ধরণের এবং মানের সাথে মানিয়ে নিতে অনুমতি দেয় - প্যাকেটের দৈর্ঘ্য, প্যাকেট এনকোডিং, উইন্ডোর আকার, অক্ষর সেট, ত্রুটি সনাক্তকরণ পদ্ধতি, সময়সীমা , বিরতি দিন। বেশিরভাগ অন্যান্য প্রোটোকলগুলি কেবলমাত্র নির্দিষ্ট ধরণের বা সংযোগের গুণাবলী এবং / অথবা নির্দিষ্ট ধরণের কম্পিউটারের মধ্যে বা ফাইল সিস্টেমগুলির মধ্যে কাজ করার জন্য ডিজাইন করা হয়েছে এবং অতএব অন্য কোথাও খারাপভাবে (বা মোটেও নয়) কাজ করে এবং অপরিকল্পিতভাবে মানিয়ে নেওয়ার জন্য যদি কোনও পদ্ধতি প্রস্তাব করে তবে কয়েকটি প্রস্তাব দেয় -পরিস্থিতির জন্য। অন্যদিকে, কেরমিট আপনাকে সফল ফাইল স্থানান্তর এবং যে কোনও সংযোগে সর্বোচ্চ সম্ভাব্য পারফরম্যান্স অর্জন করতে দেয়। "

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.