একটি নেটওয়ার্কের মাধ্যমে ফাইল স্থানান্তর করার প্রয়োজন প্রায়ই দেখা দেয়। GNU/Linux সিস্টেমগুলি এটি করার জন্য একাধিক প্রোটোকল এবং সরঞ্জাম সমর্থন করে, যার মধ্যে কিছু কিছু স্থায়ী ফাইল ভাগ করে নেওয়ার জন্য ডিজাইন করা হয়েছে (যেমন SMB, AFP, এবং NFS), অন্যগুলি যেমন সিকিউর কপি (SCP) দ্রুত ম্যানুয়াল এবং স্ক্রিপ্টেড করার জন্য ব্যবহার করা হয় ফাইল স্থানান্তর। এর মধ্যে হাইপারটেক্সট ট্রান্সফার প্রোটোকল (HTTP), বহুমুখী এবং সর্বব্যাপী প্রোটোকল যার উপর ওয়ার্ল্ড ওয়াইড ওয়েব নির্ভর করে৷
পাইথন, যা বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনে ডিফল্টরূপে অন্তর্ভুক্ত থাকে, "সিম্পলএইচটিটিপিসার্ভার" এবং "http. সার্ভার" মডিউলগুলির মাধ্যমে সহজ HTTP সার্ভার সরবরাহ করে। আগেরটি পাইথন 2 স্ট্যান্ডার্ড লাইব্রেরিতে পাওয়া যায়, আর পরেরটি পাইথন 3-এ অন্তর্ভুক্ত। এই লাইটওয়েট HTTP সার্ভারগুলির আলাদা ইনস্টলেশনের প্রয়োজন হয় না এবং একটি একক কমান্ড দিয়ে তাৎক্ষণিকভাবে শুরু করা যায়।
পাইথন ইনস্টল করা হচ্ছে
আপনার সিস্টেমে সম্ভবত অন্তত একটি পাইথন সংস্করণ রয়েছে, কিন্তু যদি তা না হয়, তাহলে আপনার নেটিভ প্যাকেজ ম্যানেজার ব্যবহার করে পাইথন 3 ইনস্টল করুন।
উদাহরণস্বরূপ, ডেবিয়ান এবং উবুন্টুতে:
sudo apt update sudo apt install -y python3
HTTP সার্ভার শুরু করা হচ্ছে
সেন্ডিং মেশিন দ্বারা ব্যবহৃত IP ঠিকানাটি নোট করুন।
ip a s
নিম্নলিখিত কমান্ডগুলির সাথে কোন পাইথন সংস্করণ ইনস্টল করা আছে তা খুঁজুন:
python --version python3 --version
একই মেশিনে, আপনি যে ফাইলগুলি স্থানান্তর করছেন তা ধারণকারী একটিতে আপনার কাজের ডিরেক্টরি পরিবর্তন করুন। পাইথন এইচটিটিপি সার্ভার চলাকালীন আপনার বর্তমান ওয়ার্কিং ডাইরেক্টরির সম্পূর্ণ বিষয়বস্তু আপনার নেটওয়ার্কে (অথবা সেন্ডিং মেশিনের একটি পাবলিক আইপি ঠিকানা থাকলে ইন্টারনেটে) যে কেউ অ্যাক্সেসযোগ্য হতে পারে তা সম্পর্কে সচেতন থাকুন৷
cd /path/to/files/
যেমন:
cd /home/user/Documents/
আপনি এখন HTTP সার্ভার শুরু করতে পারেন। Python 2.x এর জন্য, SimpleHTTPServer মডিউল ব্যবহার করুন:
python -m SimpleHTTPServer
অথবা Python 3.x:
এর ক্ষেত্রে http.serverpython3 -m http.server
উভয় বৈচিত্র ডিফল্টরূপে পোর্ট 8000-এ শোনে, যদিও আপনি মডিউল নামের পরে একটি ভিন্ন পোর্ট নম্বর স্পষ্টভাবে উল্লেখ করতে পারেন।
python -m SimpleHTTPServer [port] python3 -m http.server [port]
দ্রষ্টব্য: আপনি যদি 1024 এর অধীনে একটি পোর্ট বেছে নেন তাহলে রুট সুবিধার প্রয়োজন হয়।
আপনার ফাইল ডাউনলোড করা হচ্ছে
রিসিভিং মেশিনে, আপনি আপনার ফাইলগুলি ডাউনলোড করতে যেকোনো HTTP ক্লায়েন্ট ব্যবহার করতে পারেন। আপনি যদি একটি গ্রাফিকাল পরিবেশ ব্যবহার করেন তবে একটি ব্রাউজার প্রায়শই কমান্ড লাইন ইউটিলিটিগুলির চেয়ে বেশি সুবিধাজনক। শুধু https://IP_ADDRESS:8000-এ ব্রাউজ করুন, যেখানে "IP_ADDRESS" হল পাঠানো কম্পিউটারের IP ঠিকানা, এবং সেগুলি ডাউনলোড করতে পছন্দসই ফাইলগুলিতে ক্লিক করুন৷
বিকল্পভাবে, আপনি আপনার ফাইলগুলি আনতে Wget বা cURL ব্যবহার করতে পারেন। আপনার ইতিমধ্যেই একটি বা উভয়ই ইনস্টল করা উচিত। যদি কোনটিই না হয় তবে আমরা Wget ইনস্টল করার পরামর্শ দিই, কারণ এটি আরও ব্যবহারকারী বান্ধব এবং সম্পূর্ণ ডিরেক্টরি ডাউনলোড করা সমর্থন করে৷
ডেবিয়ান এবং উবুন্টুর জন্য:
sudo apt install wget
RHEL এবং CentOS 6/7 এর জন্য:
sudo yum install wget
ফেডোরা এবং RHEL/CentOS 8 এর জন্য:
sudo dnf install wget
Wget ব্যবহার করা
Wget-এর মাধ্যমে একটি ফাইল ডাউনলোড করতে, আপনি যে ফাইলটি ডাউনলোড করতে চান তার URL অনুসরণ করে Wget-এর সাথে যোগাযোগ করুন।
wget https://IP_ADDRESS:8000/filename
এছাড়াও আপনি -r
যোগ করে পুরো ডিরেক্টরিটি পুনরাবৃত্তভাবে ডাউনলোড করতে Wget ব্যবহার করতে পারেন কমান্ড-লাইন পতাকা।
wget -r https://IP_ADDRESS:8000/
cURL ব্যবহার করা
ডিফল্টরূপে, কার্ল আপনার টার্মিনালে ফাইলের বিষয়বস্তু প্রিন্ট করার চেষ্টা করে। তাই পরিবর্তে ফাইলটি সংরক্ষণ করতে, -o
দিয়ে একটি ফাইলের নাম উল্লেখ করুন পতাকা৷
curl https://IP_ADDRESS:8000/filename -o filename
উপসংহার
পাইথনের স্ট্যান্ডার্ড লাইব্রেরিতে HTTP কার্যকারিতা ফাইল স্থানান্তর করার একটি মৌলিক কিন্তু দ্রুত এবং সুবিধাজনক উপায় সরবরাহ করে, কিছু পরিস্থিতির জন্য উপযুক্ত। তবে মনে রাখবেন যে এটি এনক্রিপশন বা প্রমাণীকরণ সহ সাধারণ HTTP, তাই আপনার সতর্কতা অবলম্বন করা উচিত যাতে সংবেদনশীল ফাইলগুলি প্রকাশ না হয়৷