2008-10-16 26 views
10

Tôi đã tự hỏi nếu có ai có thể chỉ cho tôi hướng tới một mô-đun ftps miễn phí cho python.Mô-đun Python thực hiện ftps

Tôi là một người mới hoàn thành với python, nhưng đây là điều tôi cần cho một dự án làm việc. Tôi cần một khách hàng ftps để kết nối với một máy chủ ftps bên thứ 3.

cảm ơn,

David.

Trả lời

1

Tôi chưa thử bản thân mình (có, tôi vừa sử dụng Google và theo một số liên kết), nhưng http://www.lag.net/paramiko/ có vẻ là giải pháp được đề xuất. Từ một cái nhìn lướt qua, nó là một triển khai SSH trong Python thuần túy, cho phép tạo đường hầm cho những thứ như FTP.

Cập nhật: người nhận xét đã chỉ ra rằng tôi đã trộn lẫn sftp và ftps, xin lỗi. Tôi vẫn đề nghị ít nhất là điều tra Paramiko một thời gian ngắn để xem nó có phù hợp với yêu cầu không.

+0

sftp và ftps không giống nhau. – jfs

3

Twisted dường như có một số triển khai FTPS (FTP qua SSL) trong tiểu dự án ốc xà cừ. Tôi không có chuyên gia bị xoắn, nhưng Glyph, bản thân số bị xoắn, được liệt kê trong trang web này. Có thể bằng cách theo dõi số answer của mình cho một câu hỏi khác, bạn có thể tìm thêm chi tiết (chúc may mắn).

+0

Cảm ơn bạn đã cắm phích cắm :). Nhưng FTPS (FTP, nhưng qua SSL) không giống với SFTP (chuyển tập tin qua SSH, không thực sự liên quan đến giao thức FTP). – Glyph

+0

Bạn được chào đón;). Cảm ơn câu trả lời. – gimel

9

Tôi tin rằng bạn có thể sử dụng Twisted để triển khai FTPS bằng cách sử dụng triển khai FTP của nó, nhưng thay đổi thuộc tính FTPClient.connectFactory thành một hàm có chức năng với connectSSL thay vì connectTCP.

Bạn có chắc chắn muốn FTPS không? SFTP is a different, better, and much more popular protocol những ngày này: Xoắn có chứa an SFTP implementation.

+1

connectSSL có thể được sử dụng cho kết nối FTPS tiềm ẩn, nhưng FTPS rõ ràng (sử dụng lệnh AUTH) phổ biến hơn FTPS ngầm định. Triển khai thực hiện FTP vẫn là một khởi đầu tốt. Triển khai AUTH (và đồng) cùng với việc thay đổi DTP.connectionMade có thể là bước tiếp theo. –

1

Tôi không thể tìm thấy một ứng dụng khách sftp miễn phí cho các cửa sổ vì vậy tôi đã kết thúc gói PSFTP của Putty bằng cách sử dụng mô-đun subprocess của python. Tôi có thể đã sử dụng việc thực hiện xoắn được đề cập bởi Glyph nếu tôi biết về nó.

Dù sao nếu bạn quan tâm đến nó có sẵn tại địa chỉ:

http://code.google.com/p/psftplib/

4

M2Cypto có một module FTPS. Từ documentation:

>>> from M2Crypto import ftpslib 
>>> f = ftpslib.FTP_TLS() 
>>> f.connect('', 9021) 
'220 spinnaker.dyndns.org M2Crypto (Medusa) FTP/TLS server v0.07 ready.' 
>>> f.auth_tls() 
>>> f.set_pasv(0) 
>>> f.login('ftp', '[email protected]') 
'230 Ok.' 
>>> f.retrlines('LIST') 
-rw-rw-r-- 1 0  198   2326 Jul 3 1996 apache_pb.gif 
drwxrwxr-x 7 0  198   1536 Oct 10 2000 manual 
drwxrwxr-x 2 0  198   512 Oct 31 2000 modpy 
drwxrwxr-x 2 0  198   512 Oct 31 2000 bobo 
drwxr-xr-x 2 0  198   14336 May 28 15:54 postgresql 
drwxr-xr-x 4 100  198   512 May 16 17:19 home 
drwxr-xr-x 7 100  100   3584 Sep 23 2000 openacs 
drwxr-xr-x 10 0  0    512 Aug 5 2000 python1.5 
-rw-r--r-- 1 100  198   326 Jul 29 03:29 index.html 
drwxr-xr-x 12 0  0    512 May 31 17:08 python2.1 
'226 Transfer complete' 
>>> f.quit() 
'221 Goodbye.' 
>>> 

Ngoài ra, nếu bạn muốn hạn chế tối đa sử dụng các module của bên thứ ba, bạn sẽ có thể phân lớp lớp ftplib .FTP thư viện chuẩn với sự hỗ trợ SSL built-in (để Python). M2Crypto (hoặc Twisted, nếu bạn muốn đi theo cách đó) là giải pháp dễ dàng hơn, mặc dù.

Các vấn đề liên quan