मैं wget में डाउनलोड की गई फ़ाइल का आकार कैसे सीमित कर सकता हूं?


13

मैं wgetछवि फ़ाइलों को डाउनलोड करने के लिए (एक php स्क्रिप्ट से) का उपयोग करना चाहता हूं , लेकिन एक निश्चित आकार से अधिक फ़ाइलों को डाउनलोड नहीं करना चाहता।

क्या मैं फ़ाइल का आकार सीमित कर सकता हूं wget? यदि नहीं, तो बेहतर तरीका क्या है?

जवाबों:


14

यदि आप डाउनलोड डाउनलोड कर रहे हैं, तो आपको curlइसके बजाय उपयोग करने पर विचार करना चाहिए । WOG आउटपुट को पुन: पार्स कर सकता है और पूरी साइट्स को पुन: ला सकता है, लेकिन कर्ल के पास एक विशिष्ट फ़ाइल के वास्तविक डाउनलोड से संबंधित अधिक विकल्प हैं। यहाँ आदमी पृष्ठ में प्रासंगिक विकल्प है:

--max-filesize
डाउनलोड करने के लिए एक फ़ाइल का अधिकतम आकार (बाइट्स में) निर्दिष्ट करें। यदि अनुरोध की गई फ़ाइल इस मान से बड़ी है, तो हस्तांतरण प्रारंभ नहीं होगा और कर्ल बाहर निकलें कोड 63 के साथ वापस आ जाएगा।
नोट: फ़ाइल का आकार हमेशा डाउनलोड करने से पहले नहीं जाना जाता है, और ऐसी फ़ाइलों के लिए इस विकल्प का कोई प्रभाव नहीं पड़ता है भले ही फ़ाइल हस्तांतरण इस दी गई सीमा से अधिक बड़ा है।

केवल कुछ फ़ाइलों के लिए काम करने के बारे में ध्यान देने योग्य है। क्लाइंट यह डाउनलोड करने से पहले फाइल कितनी बड़ी होने वाली है, इसकी रिपोर्ट करने के लिए सर्वर पर निर्भर है। अधिकांश लेकिन निश्चित रूप से सभी सर्वर इसकी रिपोर्ट नहीं करते हैं।


6
आप इसे $nबाइट से बड़ी फ़ाइल बनाने से रोकने के लिए एक सिस्टम सीमा के साथ जोड़ सकते हैं (ulimit -f $(($n/512)); curl --max-filesize $n …):। curlयदि फ़ाइल का आकार $n/512512-बाइट ब्लॉक से अधिक है, तो एक त्रुटि के साथ गर्भपात होगा ।
गिलेस एसओ- बुराई को रोकना '

आप क्रैक भी कर सकते हैं।
वि।

6

यदि आप wget का उपयोग करना चाहते हैं, तो बिना डाउनलोड किए फ़ाइल के आकार का परीक्षण करने का एक तरीका है:

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 एमबी तक सीमित करने के लिए।

(कोड बदसूरत है, केवल सूचना के प्रयोजनों के लिए)।


1

Wget के साथ अधिकतम फ़ाइल आकार सेट करने के लिए कोई भी उचित तरीका प्रतीत नहीं होता है।


2
साथ गाइल्स के दृष्टिकोण ulimit(देखें bash(1), setrlimit(2)) भी साथ काम करेंगे wget(1), हालांकि यह थोड़ा भारी हाथ है।
जूल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.