Đây là một máy chủ tệp được viết trong Python 2.7, sử dụng mô -đun ổ cắm của Python. Nó cho phép chuyển bất kỳ loại tệp nào. Tất cả các gói được sử dụng trong triển khai này được bao gồm trong thư viện tiêu chuẩn. Để chạy máy chủ/máy khách, hãy gọi chương trình thích hợp từ thiết bị đầu cuối. Mỗi chương trình sẽ hiển thị một tin nhắn ngắn khi khởi động:Máy chủ tệp FTP thông qua lập trình ổ cắm trong Python
Cách sử dụng
> python server.py
Welcome to the FTP server.
To get started, connect a client.
> python client.py
Welcome to the FTP client.
Call one of the following functions:
CONN : Connect to server
UPLD file_path : Upload file
LIST : List files
DWLD file_path : Download file
DELF file_path : Delete file
QUIT : Exit
Enter a command:
Như đã chỉ ra, điều đầu tiên cần phải làm là kết nối máy khách với máy chủ. Để làm điều này, chỉ cần nhập lệnh Conn:
Khách hàng sau đó sẽ thử kết nối. Nếu thành công, một tin nhắn sẽ xuất hiện:
Enter a command: Connect
Sending a server request...
Connection successful
Sau đó, tất cả các lệnh khác có thể được nhập thông qua máy khách. Tin nhắn sẽ hiển thị tiến trình của yêu cầu trên cả máy khách và đầu máy chủ. Ví dụ: để tải lên một tệp 'my_file.mp4', hãy sử dụng lệnh sau:
Enter a command: UPLD my_file.mp4
Tất cả các đường dẫn tệp tiêu chuẩn cũng hoạt động:
Enter a command: UPLD C:\Users\...\folder\my_file.mp4
Khi máy chủ nhận được một tệp, nó sẽ đặt nó vào cùng một thư mục mà nó đang ở. Tương tự như vậy, khi lệnh danh sách được sử dụng, các tìm kiếm máy chủ cho các tệp trong cùng một thư mục mà nó được đặt trong.
Tất cả các lớp FTP quan trọng trong mô -đun FTPLIB thực hiện phía máy khách của giao thức FTP.
Để thiết lập kết nối với máy chủ FTP, hãy lấy đối tượng FTP.
con=FTP[hostname]
Lớp FTP hỗ trợ các phương thức sau -
connect[]
Kết nối với máy chủ và cổng đã cho. Số cổng mặc định là 21, như được chỉ định bởi đặc tả giao thức FTP.
Getwelcome[]
Trả lại thông báo chào mừng được gửi bởi máy chủ để trả lời kết nối ban đầu.
Đăng nhập [user = 'Ẩn danh', passwd = '', acct = '']
Đăng nhập dưới dạng người dùng đã cho. Các tham số PassWD và ACCT là tùy chọn và mặc định là chuỗi trống. Nếu không có người dùng được chỉ định, nó mặc định là 'ẩn danh'. Nếu người dùng là 'ẩn danh', passwd mặc định là 'ẩn danh@'.
abort[]
Hủy bỏ một chuyển tập tin đang được tiến hành.
Retrbinary [CMD, Callback, BlockSize = 8192, REST = none]
Truy xuất một tập tin ở chế độ chuyển nhị phân. CMD phải là một lệnh REAL thích hợp: 'ret filename'.
Storbinary[]
Lưu trữ một tập tin ở chế độ chuyển nhị phân. CMD phải là một lệnh lưu trữ thích hợp: "Lưu trữ tên tệp". FP là một đối tượng tệp [được mở ở chế độ nhị phân] được đọc cho đến khi EOF sử dụng phương thức đọc [] của nó
dir[]
Tạo một danh sách thư mục được trả về bởi lệnh danh sách, in nó vào đầu ra tiêu chuẩn.
delete[filename]
Xóa tệp có tên FileName khỏi máy chủ.
cwd[pathname]
Đặt thư mục hiện tại trên máy chủ.
MKD [tên đường dẫn]
Tạo một thư mục mới trên máy chủ.
FTP.pwd[]
Trả về tên đường dẫn của thư mục hiện tại trên máy chủ.
rmd[dirname]
Xóa thư mục có tên dirname trên máy chủ.
size[filename]
Yêu cầu kích thước của tệp có tên FileName trên máy chủ. Khi thành công, kích thước của tệp được trả về dưới dạng số nguyên, nếu không thì không có. Lưu ý rằng lệnh kích thước không được chuẩn hóa, nhưng được hỗ trợ bởi nhiều triển khai máy chủ chung.
Quit[]
Gửi lệnh bỏ đến máy chủ và đóng kết nối.
Ví dụ sau thiết lập kết nối ẩn danh với máy chủ, tải xuống tệp vào thư mục cục bộ và tải lên tệp cục bộ.
from ftplib import FTP import os def downloadFile[]: filename = 'README.MIRRORS' localfile = open[filename, 'wb'] ftp.retrbinary['RETR ' + filename, localfile.write, 1024] ftp.quit[] localfile.close[] def uploadFile[]: filename = '/home/malhar/file.txt' ftp.storbinary['STOR '+filename, open[filename, 'rb']] ftp.quit[] with FTP["ftp1.at.proftpd.org"] as ftp: ftp.login[] ftp.getwelcome[] ftp.dir[] downloadFile[] uploadFile[]
Cập nhật vào ngày 30 tháng 3 năm 2019 22:30:26
- Câu hỏi và câu trả lời liên quan
- Máy khách giao thức POP3 trong Python
- Máy khách giao thức SMTP trong Python [Smtplib]
- Giao thức truyền tệp [FTP] trong lớp ứng dụng
- Sự khác biệt giữa Giao thức truyền tệp [FTP] và Giao thức truyền tệp bảo mật [SFTP]
- Làm thế nào để sử dụng FTP trong Python?
- PHP FTP: //
- FTP là gì?
- Tùy chọn bối cảnh PHP FTP
- FTP là gì?
- Phân cấp giao thức và giao thức
- Sự khác biệt giữa FTP và TFTP
- Sự khác biệt giữa Telnet và FTP
- Các kết nối FTP là gì?
- Các hoạt động FTP là gì?
- Các mô -đun máy chủ và máy chủ XMLRPC trong Python