[英]How do I read a CSV from Secure FTP Server into a Pandas DataFrame
[英]Python FTP Server: How do I support both secure and insecure
我可以使用文檔中的示例創建一個響應端口 21(或在此示例中為 2121)的基本 FTP 服務器:
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
from pyftpdlib.contrib.authorizers import WindowsAuthorizer
def main():
authorizer = WindowsAuthorizer()
# Use Guest user with empty password to handle anonymous sessions.
# Guest user must be enabled first, empty password set and profile
# directory specified.
#authorizer = WindowsAuthorizer(anonymous_user="Guest", anonymous_password="")
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(('', 2121), handler)
server.serve_forever()
if __name__ == "__main__":
main()
或者我可以制作一個支持 TLS 的(同樣這是來自文檔的示例,除了我們的安全 FTP 端口是 990,而不是原始代碼示例中所示的 21):
from pyftpdlib.servers import FTPServer
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.contrib.handlers import TLS_FTPHandler
def main():
authorizer = DummyAuthorizer()
authorizer.add_user('user', '12345', '.', perm='elradfmw')
authorizer.add_anonymous('.')
handler = TLS_FTPHandler
handler.certfile = 'keycert.pem'
handler.authorizer = authorizer
# requires SSL for both control and data channel
#handler.tls_control_required = True
#handler.tls_data_required = True
server = FTPServer(('', 990), handler)
server.serve_forever()
if __name__ == '__main__':
main()
有沒有一種方法可以在共享一系列被動端口的同一腳本中回答端口 21(不安全)和 990(使用 TLS 保護),例如:
handler.passive_ports = range(50000, 50051)
我想我可以編寫兩個腳本,但是如果它們共享被動端口范圍,它將如何工作? 該范圍是必需的,我們使用的當前 IIS 設置同時支持 TLS 和不安全連接。 我想在自定義服務器中使用 pyftpdlib,以便我們可以對上傳的文件執行自定義邏輯。 一切正常,我只需要了解最后一點,而且我沒有編寫 FTP 服務器的經驗。
無需在同一進程中同時擁有兩種服務器,但您可以簡單地使用具有相同passive_ports
設置的單獨進程。 創建套接字時,它只會嘗試使用給定范圍內的端口,該端口未被系統上的任何其他進程使用。 因此,如果特定端口已被另一服務器進程使用,則一個服務器進程將僅使用另一端口重試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.