當前位置: 首頁>>技術教程>>正文


Python安全FTP模塊[sftp]

總覽

在上一篇文章中,我們介紹了Python中的ftplib模塊,您可以閱讀有關的更多信息,見:《在Python中,如何使用FTP 》。
在這篇文章中,我們將介紹pysftp模塊。 SFTP(安全文件傳輸協議)用於通過Internet安全地交換文件。

pysftp是什麽?

pysftp是一個易於使用的sftp模塊,它利用了paramiko和pycrypto。它提供了一個簡單的sftp接口。
pysftp的一些特性是:

  • 自動優雅地處理RSA和DSS私鑰文件。
  • 支持加密的私鑰文件。
  • 可以啟用/禁用日誌記錄

我為什麽要使用pysftp?

當您想在python中通過Internet安全地交換文件時。

如何安裝pysftp?

pysftp在PyPi上列出,可以使用pip安裝。

# Search for pysftp
pip search pysftp

pysftp                    # - A friendly face on SFTP

#Install pysftp
pip install pysftp

如何使用pysftp?

使用pysftp很容易,我們將展示一些有關如何使用它的示例:

列出遠程目錄

要連接到我們的FTP服務器,我們首先必須導入pysftp模塊並指定(如果適用)服務器,用戶名和密碼憑據。
運行該程序後,您應該看到FTP服務器當前目錄下的所有文件和目錄。

import pysftp

srv = pysftp.Connection(host="your_FTP_server", username="your_username",
password="your_password")

# Get the directory and file listing
data = srv.listdir()

# Closes the connection
srv.close()

# Prints out the directories and files, line by line
for i in data:
    print i

連接參數介紹

參數 描述
host 遠程計算機的主機名。
username 在遠程計算機上的用戶名。(默認None)
private_key 私鑰文件。(默認None)
password 在遠程計算機上的密碼。(默認None)
port 遠程計算機的SSH端口。(默認22)
private_key_pass 如果使用加密的private_key,則為對應密碼(默認None)
log 是否輸出日誌,連接/握手詳細信息(默認False)

下載/上傳遠程文件

與前麵的示例一樣,我們首先導入pysftp模塊並指定(如果適用)服務器,用戶名和密碼憑據。
我們還導入sys模塊,因為我們希望用戶指定要下載/上傳的文件。

import pysftp
import sys

# Defines the name of the file for download / upload
remote_file = sys.argv[1]

srv = pysftp.Connection(host="your_FTP_server", username="your_username",
password="your_password")

# Download the file from the remote server
srv.get(remote_file)

# To upload the file, simple replace get with put. 
srv.put(remote_file)

# Closes the connection
srv.close()

下一步怎麽做?

上麵已經是完整的sftp連接過程了,接下來可以試一試腳本,進行更改,看看會發生什麽。嘗試添加錯誤處理。
如果不傳遞任何參數怎麽辦?或者通過提示輸入來向程序添加一些交互。


sftp vs ftp


參考資料

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4397.html,未經允許,請勿轉載。