python は ftp サーバーとクライアントを実装します

一緒に創造し、成長するために一緒に働きましょう!「Nuggets Daily New Plan・August Update Challenge」に参加して22日目、イベント詳細はこちら

Pythonには組み込みのftpクライアントがありますが、ftpサーバーを実装するには、サードパーティのライブラリpyftpdlibをインストールする必要があります

pyftpdlib

pyftpdlib は、完全に機能する非同期 FTP サービスを実装します。オープン ソース コードのアドレス: github.com/giampaolo/p…

pyftpdlib をインストールする

多くのインストール方法がありますが、pip をお勧めします。

pip は Python のパッケージ インストーラーです。実際、pip は Python 標準ライブラリ (The Python Standard Library) 内のパッケージですが、このパッケージは特別であり、Python 標準ライブラリ (The Python Standard Library) 内の他のパッケージを管理するために使用できます。pip はコマンド ライン プログラムです。pip がインストールされると、コマンド プロンプトから実行できる pip コマンドがシステムに追加されます。

ピップをインストールします。

  • Python をインストールします。これはインストールする必要があります。

  • ピップをダウンロード:

    公式サイトアドレス:pypi.org/project/pip… ; ダウンロード後、解凍

  • コマンド ライン ウィンドウを開き、pip 解凍後にディレクトリに入り、コードを実行します。

    インストールする python3 setup.py install
    、インストールが完了したら、システム環境変数に pip を追加します

  • コマンド ライン ウィンドウが開いていることを確認し、pip list または pip3 list と入力します。ここに画像の説明を挿入

上記は Windows システムのみを対象としており、他のシステムも参照できます。

  • 必要なライブラリをインストールします。コマンド ライン ウィンドウを開き、次のコードを入力して実行し、Enter キーを押します。

    pip インストール pyftpdlib

    3 番目のライブラリが正常にインストールされたことを示すプロンプトが表示されるまで待ちます。

FTP サービスを開始する

pyftpdlib が正常にインストールされたら、コマンド ラインで次のように入力します。

python3 -m pyftpdlib -p 21

簡単な ftp サービスを開始できます. デフォルトでは開始するのに十分ではない ftp サービスには、パスワードのない匿名ユーザーしかいません. ユーザーと権限を追加したい場合は、それをコーディングする必要があります;

ユーザー認証と権限認証を備えた FTP サーバーを実装するためのコード

def ftpServer():
    import pyftpdlib
    # 该脚本程序是运行在windows上的ftp
    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler
    from pyftpdlib.servers import FTPServer
   
    #实例化虚拟用户
    authorizer = DummyAuthorizer()
    # 添加用户权限和路径
    authorizer.add_user('user', '123456', "d:/", perm="elradfmw")
    # 添加匿名用户,只需要路径
    authorizer.add_anonymous("d:/")
    #初始化ftp句柄
    handler = FTPHandler
    handler.authorizer = authorizer
    #添加被动端口范围
    handler.passive_ports = range(2000,20033)
    # 监听ip和端口
    server = FTPServer(('0.0.0.0', 21), handler)
    # 开始服务
    server.serve_forever()
复制代码

上記のコードを実行して ftp サービスを開始します。

ftp クライアント

上記は ftp サービスをローカルで開始します. テスト時には、Windows 独自の ftp クライアント接続テストを使用できます。

コマンド ライン ウィンドウを開き、ftp 127.0.0.1 を入力し、ユーザーを入力し、パスワードのテスト結果を入力します。

さらに、python には組み込みの ftp クライアント ライブラリ ftplib もあります。

Python で FTP クライアントを使用する

  1. 最初のインポート FTP

ftplib インポート FTP から

  1. FTP オブジェクトをインスタンス化する

ftp = FTP()

  1. ftp に接続し、ホストとポートを渡します

ftp.connect(ホスト、ポート)

  1. ftp にログインし、login メソッドを使用して、ユーザー パスワードを渡します。

ftp.login(u,p)

  1. ftp に正常にログインし、ファイルをアップロードおよびダウンロードします。

storbinary メソッドを使用してアップロードします。

 buf_size = 1024
        file_handler = open(local_file, 'rb')
        ftp.storbinary('STOR %s' % remote_file, file_handler, buf_size)
        file_handler.close()
复制代码

retrbinary メソッドを使用してダウンロードする

  try:
   buf_size = 1024
   file_handler = open(local_file, 'wb')
ftp.retrbinary('RETR %s' % remote_file, file_handler.write, buf_size)
 file_handler.close()
 except Exception as err:
	 return
复制代码

FTP操作を実行した後、接続を閉じる必要があります

ftp.quit()
复制代码

上記で ftp の日常的な操作が実現しました; その他の関連する ftp 操作については、公式ドキュメントを参照してください。

おすすめ

転載: juejin.im/post/7132652956142272542