Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

पायथन के बिल्ट-इन HTTP सर्वर का उपयोग करके फ़ाइलें ट्रांसफर करना

नेटवर्क पर फ़ाइलें ट्रांसफर करने की आवश्यकता अक्सर उत्पन्न होती है। GNU/Linux सिस्टम ऐसा करने के लिए कई प्रोटोकॉल और टूल्स का समर्थन करते हैं, जिनमें से कुछ स्थायी फ़ाइल शेयरिंग के लिए डिज़ाइन किए गए हैं (जैसे SMB, AFP, और NFS), जबकि अन्य जैसे सिक्योर कॉपी (SCP) का उपयोग त्वरित मैन्युअल और स्क्रिप्टेड फ़ाइल ट्रांसफर के लिए किया जाता है। इनमें हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) शामिल है, वह बहुमुखी और सर्वव्यापी प्रोटोकॉल जिस पर वर्ल्ड वाइड वेब निर्भर करता है।

पायथन (Python), जो अधिकांश लिनक्स डिस्ट्रीब्यूशन में डिफ़ॉल्ट रूप से शामिल है, "SimpleHTTPServer" और "http.server" मॉड्यूल के माध्यम से सरल HTTP सर्वर प्रदान करता है। पूर्व पायथन 2 स्टैंडर्ड लाइब्रेरी में पाया जाता है, जबकि बाद वाला पायथन 3 में शामिल है। इन हल्के HTTP सर्वरों को अलग इंस्टॉलेशन की आवश्यकता नहीं होती है और एक ही कमांड से तुरंत शुरू किया जा सकता है।

पायथन इंस्टॉल करना

आपके सिस्टम में सबसे अधिक संभावना है कि कम से कम एक पायथन संस्करण शामिल हो, लेकिन यदि ऐसा नहीं है, तो अपने नेटिव पैकेज मैनेजर का उपयोग करके पायथन 3 इंस्टॉल करें।

उदाहरण के लिए, डेबियन और उबंटू पर:

sudo apt update
sudo apt install -y python3

HTTP सर्वर शुरू करना

भेजने वाली मशीन द्वारा उपयोग किए जाने वाले IP एड्रेस को नोट करें।

ip a s

पायथन के बिल्ट-इन HTTP सर्वर का उपयोग करके फ़ाइलें ट्रांसफर करना

निम्न कमांड से पता करें कि कौन सा पायथन संस्करण इंस्टॉल है:

python --version
python3 --version

उसी मशीन पर, अपनी वर्किंग डायरेक्टरी को उसमें बदलें जिसमें आप ट्रांसफर की जाने वाली फ़ाइलें हैं। इस तथ्य से अवगत रहें कि जब पायथन HTTP सर्वर चल रहा हो, तो आपकी वर्तमान वर्किंग डायरेक्टरी की पूरी सामग्री आपके नेटवर्क पर किसी के लिए भी (या इंटरनेट पर यदि भेजने वाली मशीन का पब्लिक IP एड्रेस है) एक्सेसिबल हो सकती है।

cd /path/to/files/

उदाहरण के लिए:

cd /home/user/Documents/

अब आप HTTP सर्वर शुरू कर सकते हैं। पायथन 2.x के लिए, SimpleHTTPServer मॉड्यूल का उपयोग करें:

python -m SimpleHTTPServer

या पायथन 3.x के मामले में http.server:

python3 -m http.server

दोनों विविधताएं डिफ़ॉल्ट रूप से पोर्ट 8000 पर सुनती हैं, हालांकि आप मॉड्यूल नाम के बाद स्पष्ट रूप से एक अलग पोर्ट नंबर निर्दिष्ट कर सकते हैं।

python -m SimpleHTTPServer [port]
python3 -m http.server [port]

नोट: यदि आप 1024 से कम पोर्ट चुनते हैं तो रूट विशेषाधिकार आवश्यक हैं।

अपनी फ़ाइलें डाउनलोड करना

प्राप्त करने वाली मशीन पर, आप अपनी फ़ाइलें डाउनलोड करने के लिए किसी भी HTTP क्लाइंट का उपयोग कर सकते हैं। यदि आप ग्राफिकल वातावरण का उपयोग कर रहे हैं, तो ब्राउज़र अक्सर कमांड लाइन यूटिलिटीज़ की तुलना में अधिक सुविधाजनक होता है। बस https://IP_ADDRESS:8000 पर ब्राउज़ करें, जहां "IP_ADDRESS" भेजने वाले कंप्यूटर का IP एड्रेस है, और डाउनलोड करने के लिए वांछित फ़ाइलों पर क्लिक करें।

पायथन के बिल्ट-इन HTTP सर्वर का उपयोग करके फ़ाइलें ट्रांसफर करना

वैकल्पिक रूप से, आप अपनी फ़ाइलें लाने के लिए Wget या cURL का उपयोग कर सकते हैं। आपके पास उनमें से एक या दोनों पहले से इंस्टॉल होने चाहिए। यदि कोई भी नहीं है, तो हम Wget इंस्टॉल करने का सुझाव देते हैं, क्योंकि यह अधिक उपयोगकर्ता के अनुकूल है और संपूर्ण डायरेक्टरीज़ डाउनलोड करने का समर्थन करता है।

डेबियन और उबंटू के लिए:

sudo apt install wget

RHEL और CentOS 6/7 के लिए:

sudo yum install wget

फेडोरा और RHEL/CentOS 8 के लिए:

sudo dnf install wget

Wget का उपयोग करना

Wget के साथ एक फ़ाइल डाउनलोड करने के लिए, बस Wget को उस फ़ाइल के URL के साथ चलाएं जिसे आप डाउनलोड करना चाहते हैं।

wget https://IP_ADDRESS:8000/filename

पायथन के बिल्ट-इन HTTP सर्वर का उपयोग करके फ़ाइलें ट्रांसफर करना

आप कमांड-लाइन फ्लैग -r जोड़कर Wget का उपयोग संपूर्ण डायरेक्टरी को रिकर्सिवली डाउनलोड करने के लिए भी कर सकते हैं।

wget -r https://IP_ADDRESS:8000/

पायथन के बिल्ट-इन HTTP सर्वर का उपयोग करके फ़ाइलें ट्रांसफर करना

cURL का उपयोग करना

डिफ़ॉल्ट रूप से, curl फ़ाइल सामग्री को आपके टर्मिनल पर प्रिंट करने का प्रयास करता है। इसलिए फ़ाइल को सेव करने के लिए, -o फ्लैग के साथ एक फ़ाइलनाम निर्दिष्ट करें।

curl https://IP_ADDRESS:8000/filename -o filename

पायथन के बिल्ट-इन HTTP सर्वर का उपयोग करके फ़ाइलें ट्रांसफर करना

निष्कर्ष

पायथन के स्टैंडर्ड लाइब्रेरी में HTTP कार्यक्षमता फ़ाइलों को ट्रांसफर करने का एक बुनियादी लेकिन तेज़ और सुविधाजनक तरीका प्रदान करती है, जो कुछ परिदृश्यों के लिए बिल्कुल सही है। लेकिन ध्यान रखें कि चूंकि यह न तो एन्क्रिप्शन और न ही प्रमाणीकरण के साथ प्लेन HTTP है, इसलिए आपको संवेदनशील फ़ाइलों को उजागर न करने के लिए सावधान रहना चाहिए।

  1. पायथन का उपयोग करके एकाधिक फ़ाइलों का नाम बदलना पायथन का उपयोग करके एकाधिक फ़ाइलों का नाम बदलना

    rename() मेथड का उपयोग पायथन 3 में किसी फ़ाइल या निर्देशिका का नाम बदलने के लिए किया जाता है। rename() मेथड os मॉड्यूल का एक हिस्सा है। os.rename() के लिए सिंटैक्स os.rename(src, dst) पहला तर्क src है जो नाम बदलने वाली फ़ाइल का स्रोत पता है और दूसरा तर्क dst नए नाम के साथ गंतव्य है। आइए किसी भी निर

  1. पायथन में CX_Freeze का उपयोग पायथन में CX_Freeze का उपयोग

    कभी-कभी हम कुछ अलग बनाना चाहते हैं जो बहुत रोमांचक हो, और मानव स्वभाव के अनुसार, हम हमेशा इसे साझा करना पसंद करते हैं। पायथन भी उन इच्छाओं को पूरा करता है। पायथन का उपयोग करके, अगर हम अपने पायथन प्रोग्राम को अपने दोस्तों के साथ साझा करना चाहते हैं तो हम ऐसा कर सकते हैं, बस उनके मशीन पर वही पायथन सं

  1. Linux में SCP का उपयोग करके फ़ाइलों को सुरक्षित रूप से कैसे स्थानांतरित करें Linux में SCP का उपयोग करके फ़ाइलों को सुरक्षित रूप से कैसे स्थानांतरित करें

    Linux सर्वर तक पहुंचने पर, आपके पास कुछ विकल्प होते हैं। यदि यह यूजर इंटरफेस वाला सर्वर है, तो आप VNC का उपयोग कर सकते हैं, लेकिन अधिक सामान्य विकल्प एक हेडलेस सर्वर में सिक्योर शेल, या SSH के साथ लॉग इन करना है। यह एक एन्क्रिप्टेड, सुरक्षित प्रोटोकॉल है जो आपको SSH क्लाइंट के माध्यम से रिमोट सिस्ट