আমি wget
ইমেজ ফাইলগুলি ডাউনলোড করতে (পিএইচপি স্ক্রিপ্ট থেকে) ব্যবহার করতে চাই, তবে নির্দিষ্ট আকারে ফাইলগুলি ডাউনলোড করতে চাই না।
আমি কি দিয়ে ফাইলের আকার সীমাবদ্ধ করতে পারি wget
? তা না হলে এর থেকে উত্তম উপায় কী?
আমি wget
ইমেজ ফাইলগুলি ডাউনলোড করতে (পিএইচপি স্ক্রিপ্ট থেকে) ব্যবহার করতে চাই, তবে নির্দিষ্ট আকারে ফাইলগুলি ডাউনলোড করতে চাই না।
আমি কি দিয়ে ফাইলের আকার সীমাবদ্ধ করতে পারি wget
? তা না হলে এর থেকে উত্তম উপায় কী?
উত্তর:
আপনি যদি ডাউনলোডগুলি স্ক্রিপ্ট করছেন তবে curl
পরিবর্তে আপনার ব্যবহারটি বিবেচনা করা উচিত । উইজেট আউটপুটকে বিশ্লেষণ করে এবং পুনরুত্পরিভাবে পুরো সাইটগুলি আনতে পারে তবে কার্লের কাছে একটি নির্দিষ্ট ফাইলের আসল ডাউনলোড সম্পর্কিত আরও অনেক বিকল্প রয়েছে। ম্যান পৃষ্ঠাতে প্রাসঙ্গিক বিকল্পটি এখানে:
--max-fileize
ডাউনলোড করার জন্য কোনও ফাইলের সর্বোচ্চ আকার (বাইটে) নির্দিষ্ট করুন Spec অনুরোধ করা ফাইলটি যদি এই মানটির চেয়ে বড় হয় তবে স্থানান্তর শুরু হবে না এবং প্রস্থান কোড 63৩ দিয়ে কার্ল ফিরে আসবে NOT
দ্রষ্টব্য: ডাউনলোডের আগে ফাইলের আকার সর্বদা জানা যায় না এবং এই জাতীয় ফাইলগুলির জন্য এই বিকল্পটির কোনও প্রভাব নেই যদিও ফাইল স্থানান্তর এই প্রদত্ত সীমাটির চেয়ে বড় হয়ে শেষ হয়।
শুধুমাত্র কিছু ফাইলের জন্য এটি সম্পর্কে কাজ করা নোটটি বিবেচ্য। ডাউনলোড শুরু হওয়ার আগে ফাইলটি কত বড় হতে চলেছে তা জানাতে ক্লায়েন্ট সার্ভারের উপর নির্ভরশীল। সর্বাধিক তবে অবশ্যই সমস্ত সার্ভার এটি রিপোর্ট করে না।
আপনি যদি উইজেট ব্যবহার করতে চান তবে ডাউনলোড না করেই ফাইলের আকার পরীক্ষা করার একটি উপায় এখানে রয়েছে:
wget --spider $URL 2>&1 | awk '/Length/ {print $2}'
$URL
অবশ্যই আপনি যে ফাইলটি ডাউনলোড করতে চান তার URL টি কোথায় ।
সুতরাং আপনি আউটপুট উপর ভিত্তি করে আপনার স্ক্রিপ্ট শর্ত করতে পারেন। যেমন:
{ [ $(wget --spider $URL 2>&1 | awk '/Length/ {print $2}') -lt 20971520 ] && wget $URL; } || echo file to big
ডাউনলোডের আকার 20 এমবি সীমাবদ্ধ করার জন্য।
(কোডটি কুৎসিত, কেবল তথ্যের জন্য)।
উইজেট সহ সর্বাধিক ফাইলের আকার নির্ধারণের কোনও যুক্তিসঙ্গত উপায় নেই বলে মনে হয়।
ulimit
(দেখুন bash(1)
, setrlimit(2)
) ও সঙ্গে কাজ করবে wget(1)
, যদিও এটি একটি বিট ভারী হাতে নেই।
উইজেটের একটি -Q
--quota
বিকল্প রয়েছে যা বেশ কয়েকটি ডাউনলোডের পরিমাণ সীমাবদ্ধ করে যখন বেশ কয়েকটি ইউআরএল (পুনরাবৃত্ত বা ইনপুট তালিকা) দেওয়া হয়।
https://www.gnu.org/software/wget/manual/html_node/Download-Options.html
$n
বাইট:(ulimit -f $(($n/512)); curl --max-filesize $n …)
।curl
যদি ফাইলের আকার$n/512
512-বাইট ব্লক ছাড়িয়ে যায় তবে একটি ত্রুটি সহ বাতিল করা হবে ।