मैं Mac OS 10.11.6 El Capitan चला रहा हूं। एक लिंक है जिसे मैं प्रोग्राम डाउनलोड करना चाहूंगा:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
यदि मैं इस URL को किसी भी ब्राउज़र (जैसे सफ़ारी) में पेस्ट करता हूँ तो डाउनलोड पूरी तरह से काम करता है।
हालाँकि, यदि मैं कमांड लाइन से उसी URL को डाउनलोड करने का प्रयास करता हूं, तो curlयह काम नहीं करता है - परिणाम एक खाली फाइल है:
$ ls -lA
$ curl -O https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-osx10.11-x86_64.dmg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
$ ls -lA
total 0
-rw-r--r-- 1 myname staff 0 Nov 7 14:07 mysql-5.7.16-osx10.11-x86_64.dmg
$
बेशक मैं ब्राउज़र के माध्यम से फाइल प्राप्त कर सकता हूं, लेकिन मैं यह समझना चाहूंगा किcurl ऊपर का कमांड क्यों काम नहीं करता है।
curlइस फ़ाइल को सही ढंग से डाउनलोड क्यों नहीं किया जा सकता है, जब यह स्पष्ट रूप से वेबसाइट पर मौजूद है और इसे ग्राफिकल वेब ब्राउज़र के माध्यम से सही तरीके से एक्सेस और डाउनलोड किया जा सकता है?
curl -v"वर्बोज़" के लिए उपयोग कर सकते हैं । यह कनेक्शन, अनुरोध और प्रतिक्रिया के बारे में विभिन्न जानकारी को मानक त्रुटि पर प्रिंट करेगा। इस स्थिति में, आप देखेंगे कि प्रतिक्रिया में HTTP 302 Found(एक रीडायरेक्ट कोड) और LocationURL पर जाने के लिए एक हेडर शामिल है। फिर आप यह man curlपता लगा सकते हैं कि इसे रीडायरेक्ट का पालन करने का तरीका कैसे बताया जाए।
User-Agent। इसके अतिरिक्त, कुछ ब्राउज़र डाउनलोड सत्र कुकीज के कारण सफल हो सकते हैं (अर्थात यदि आप लॉग इन हैं) केवल उक्त ब्राउज़र पर मौजूद है।