Python 教學範例 - FTP 檔案傳輸軟體

Author: Kelvin Huang

快速連結 [ Python 教學首頁 ]

這個 Python 教學探討開發 FTP 檔案傳輸軟體。

FTP 全名是 File Transfer Protocol(檔案傳輸協定),誕生於 1970 年代,是最早期的網路應用之一,它是基於 TCP/IP 的通訊協定,專門用來在 用戶端(Client)與伺服器(Server)之間傳輸檔案。到現在仍然廣泛使用在網站維護、資料分享、備份等場景。

基本概念

  1. 客戶端與伺服器

    • 使用者需要透過 FTP 客戶端軟體(例如 FileZilla、WinSCP,或 Python 自行撰寫的 FTP 程式)去連線到 FTP 伺服器。

    • 伺服器通常會需要帳號與密碼,部分伺服器也提供「匿名登入(anonymous)」。

  2. 傳輸模式

    • 主動模式(Active Mode):伺服器主動建立資料連線。

    • 被動模式(Passive Mode):伺服器告訴客戶端一個可用的連接埠,由客戶端主動建立資料連線(通常在防火牆環境中更常用)。

  3. 連線埠

    • 控制連線:預設使用 TCP 21 埠。

    • 資料傳輸:會使用額外的臨時埠(根據主動/被動模式不同而異)。

 

主要功能

  • 上傳檔案(從本機傳到伺服器)

  • 下載檔案(從伺服器傳到本機)

  • 建立、刪除、修改 伺服器上的檔案與目錄

  • 檔案權限設定(伺服器允許的情況下)

 

FTP 的不足與改進

  • 安全性問題:傳統 FTP 的帳號密碼與資料都是「明文傳輸」,容易被攔截。

  • 改進版本:

    • FTPS:在 FTP 上加入 SSL/TLS 加密。

    • SFTP(SSH File Transfer Protocol):雖然名字相似,但其實是基於 SSH 的獨立協定,比 FTP 更安全可靠。

常見應用

  • 網站維護:將 HTML、PHP、圖片等檔案上傳到主機。

  • 資料共享:公司內部或實驗室分享大檔案。

  • 備份用途:自動定期將檔案傳到遠端伺服器。

 

Python 程式碼 [ https://www.cg.com.tw/Python-code/code-viewer.php?file=F-1-FTP.py ]

 

按下 [ 連線 ] 按鈕時,將開啟連線到伺服器的對話框,讓使用者輸入主機位址、帳號、密碼 進行登入。

 

Copyright © 2025 CG Digital Corp. All rights reserved.