আমি ম্যাক ওএস 10.11.6 এল ক্যাপিটান চালাচ্ছি। আমি প্রোগ্রামের মাধ্যমে ডাউনলোড করতে চাই একটি লিঙ্ক আছে:
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
(একটি রিডাইরেক্ট কোড) এবং Location
URL এ যাওয়ার সাথে একটি শিরোনাম রয়েছে to তারপরে আপনি man curl
কীভাবে এটি পুনর্নির্দেশগুলি অনুসরণ করতে বলবেন তা খুঁজে পেতে পারেন।
User-Agent
। অতিরিক্তভাবে, কিছু ব্রাউজার ডাউনলোড সেশন কুকিজের কারণে (যেমন আপনি লগ ইন থাকলে) কেবলমাত্র ব্রাউজারে উপস্থিত থাকার কারণে সফল হতে পারে।