Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में FTP प्रोटोकॉल क्लाइंट

ftplib मॉड्यूल में FTP क्लास FTP प्रोटोकॉल के क्लाइंट साइड को कार्यान्वित करती है, जिससे फाइल ट्रांसफर, डायरेक्टरी नेविगेशन, और रिमोट फाइल मैनेजमेंट संभव होता है।

कनेक्शन स्थापित करना

from ftplib import FTP

# तरीका 1: कंस्ट्रक्टर में होस्टनाम
ftp = FTP('ftp.example.com')

# तरीका 2: अलग से कनेक्ट
ftp = FTP()
ftp.connect('ftp.example.com', 21)  # डिफ़ॉल्ट पोर्ट 21

# लॉगिन (अनाम डिफ़ॉल्ट)
ftp.login()                    # anonymous login
ftp.login('username', 'password')  # क्रेडेंशियल्स के साथ

मुख्य मेथड्स

मेथडविवरण
connect(host, port)सर्वर से कनेक्ट
getwelcome()वेलकम मैसेज प्राप्त करें
login(user, passwd, acct)लॉगिन करें
abort()चल रहे ट्रांसफर को अबॉर्ट करें
retrbinary(cmd, callback, blocksize, rest)बाइनरी मोड में फाइल डाउनलोड
storbinary(cmd, fp, blocksize, callback, rest)बाइनरी मोड में फाइल अपलोड
dir(pathname)डायरेक्टरी लिस्टिंग प्रिंट करें
nlst(pathname)फाइल नामों की सूची लौटाएं
delete(filename)फाइल डिलीट करें
cwd(pathname)करंट डायरेक्टरी बदलें
mkd(pathname)नई डायरेक्टरी बनाएं
pwd()करंट डायरेक्टरी पथ प्राप्त करें
rmd(dirname)डायरेक्टरी हटाएं
size(filename)फाइल साइज़ प्राप्त करें
quit()कनेक्शन बंद करें

उदाहरण: फाइल डाउनलोड और अपलोड

from ftplib import FTP
import os

def download_file(ftp, remote_filename, local_filename):
    """बाइनरी मोड में फाइल डाउनलोड"""
    with open(local_filename, 'wb') as local_file:
        ftp.retrbinary(f'RETR {remote_filename}', local_file.write)
    print(f"डाउनलोड पूरा: {local_filename}")

def upload_file(ftp, local_filename, remote_filename):
    """बाइनरी मोड में फाइल अपलोड"""
    with open(local_filename, 'rb') as local_file:
        ftp.storbinary(f'STOR {remote_filename}', local_file)
    print(f"अपलोड पूरा: {remote_filename}")

# उपयोग
with FTP("ftp.example.com") as ftp:
    ftp.login("username", "password")
    print(ftp.getwelcome())
    
    # डायरेक्टरी लिस्टिंग
    ftp.dir()
    
    # फाइल डाउनलोड
    download_file(ftp, 'README.txt', 'local_README.txt')
    
    # फाइल अपलोड
    upload_file(ftp, '/home/user/document.pdf', 'document.pdf')
    
    # डायरेक्टरी नेविगेशन
    ftp.cwd('/public_html')
    print(f"करंट डायरेक्टरी: {ftp.pwd()}")
    
    # फाइल साइज़
    size = ftp.size('index.html')
    print(f"index.html साइज़: {size} बाइट्स")
    
    # फाइल डिलीट
    # ftp.delete('old_file.txt')
    
    # नई डायरेक्टरी
    # ftp.mkd('new_folder')

# कनेक्शन ऑटोमेटिकली बंद होता है (context manager)

उन्नत: रिकर्सिव डायरेक्टरी लिस्टिंग

def list_all_files(ftp, path='.'):
    """सभी फाइल्स रिकर्सिवली लिस्ट करें"""
    original_cwd = ftp.pwd()
    try:
        ftp.cwd(path)
        files = []
        dirs = []
        
        # nlst से नाम प्राप्त करें
        try:
            names = ftp.nlst()
        except:
            names = []
        
        for name in names:
            if name in ('.', '..'):
                continue
            try:
                # डायरेक्टरी है या नहीं चेक करें
                ftp.cwd(name)
                ftp.cwd('..')
                dirs.append(name)
            except:
                files.append(name)
        
        print(f"डायरेक्टरी: {path}")
        for f in files:
            print(f"  फाइल: {f}")
        for d in dirs:
            list_all_files(ftp, d)
    finally:
        ftp.cwd(original_cwd)

# उपयोग
with FTP("ftp.example.com") as ftp:
    ftp.login("user", "pass")
    list_all_files(ftp)

सुरक्षा: FTP_TLS (FTPS)

from ftplib import FTP_TLS

# SSL/TLS के साथ सुरक्षित FTP
ftps = FTP_TLS('ftps.example.com')
ftps.login('user', 'pass')
ftps.prot_p()  # डेटा कनेक्शन भी एन्क्रिप्ट करें

# बाकी ऑपरेशन्स समान
ftps.dir()
ftps.quit()

सामान्य समस्याएं और समाधान

  • पैसिव मोड: फायरवॉल/NAT के पीछे ftp.set_pasv(True) सेट करें
  • टाइमआउट: FTP(host, timeout=30) सेट करें
  • एन्कोडिंग: ftp.encoding = 'utf-8' सेट करें (पायथन 3.9+)
  • बड़ी फाइल्स: rest पैरामीटर से रिज्यूम सपोर्ट
चेतावनी: FTP असुरक्षित प्रोटोकॉल है (क्रेडेंशियल्स प्लेनटेक्स्ट में)। प्रोडक्शन में SFTP (SSH File Transfer Protocol) या FTPS उपयोग करें। paramiko या pysftp लाइब्रेरीज SFTP के लिए बेहतर हैं।
  1. Windows Server पर KMS सक्रियण का समस्या निवारण Windows Server पर KMS सक्रियण का समस्या निवारण

    KMS या Key Management Services आमतौर पर एक Windows Server कंप्यूटर होता है जिसे Volume Activation Services भूमिका स्थापित करके KMS होस्ट कंप्यूटर के रूप में कॉन्फ़िगर किया जाता है। जब कोई एंटरप्राइज कंप्यूटर सक्रिय करने के लिए KMS कुंजियों का उपयोग करता है, तो उसे सत्यापन के लिए KMS होस्ट की आवश्यकत

  1. Windows 10 पर FTP सर्वर पर फ़ाइलें कैसे अपडेट करें Windows 10 पर FTP सर्वर पर फ़ाइलें कैसे अपडेट करें

    अब तक, हमने देखा है कि FTP सर्वर कैसे सेट करें और इसे इंटरनेट के माध्यम से बाहरी नेटवर्क से एक्सेस करने के लिए कैसे कॉन्फ़िगर करें। लेकिन इसका अधिकतम लाभ उठाने के लिए, न केवल पढ़ने बल्कि लिखने की सुविधाएं भी उपलब्ध होनी चाहिए। ऐसा करने के कई तरीके हैं। लेकिन Windows 10 पर अंतर्निहित फाइल एक्सप्लोरर

  1. विंडोज फाइल एक्सप्लोरर को मिनटों में एक सहज FTP क्लाइंट में बदलें विंडोज फाइल एक्सप्लोरर को मिनटों में एक सहज FTP क्लाइंट में बदलें

    फाइल ट्रांसफर प्रोटोकॉल (FTP) एक मानक नेटवर्क प्रोटोकॉल है जिसका उपयोग कंप्यूटर नेटवर्क पर क्लाइंट और सर्वर के बीच कंप्यूटर फाइलों के ट्रांसफर के लिए किया जाता है। FTP क्लाइंट-सर्वर मॉडल आर्किटेक्चर पर बनाया गया है और क्लाइंट और सर्वर के बीच अलग कंट्रोल और डेटा कनेक्शन का उपयोग करता है। इसके अलावा,