迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的一行 FTP 服务器

作者:迹忆客 最近更新:2023/06/20 浏览次数:

FTP 是文件传输协议的缩写。 它允许您通过计算机网络在客户端和服务器之间传输文件。

Python 库包括一个 pyftpdlib 模块,允许您使用 Python 编写高效且可扩展的 FTP 服务器。 本教程教您使用 Python 中的一行代码创建 FTP 服务器。


使用 pyftpdlib 在 Python 中创建一行 FTP 服务器

首先,您必须安装 pyftpdlib 模块。

pip install pyftpdlib

输出:

Successfully built pyftpdlib
Installing collected packages: pyftpdlib
Successfully installed pyftpdlib-1.5.6

然后就可以在终端执行 pyftpdlib 命令了。 例如,以下命令使用当前目录启动 FTP 服务器。

python -m pyftpdlib

输出:

[I 2022-09-20 21:36:36] concurrency model: async
[I 2022-09-20 21:36:36] masquerade (NAT) address: None
[I 2022-09-20 21:36:36] passive ports: None
[I 2022-09-20 21:36:36] >>> starting FTP server on 0.0.0.0:2121, pid=3492 <<<

接下来,验证服务器是否正在运行。

curl ftp://127.0.0.1:2121

它将列出当前目录的所有内容,如下所示。

输出:

-rw-rw-rw-   1 owner    group        6817 May 20 06:55 -1.14-windows.xml
drwxrwxrwx   1 owner    group           0 Nov 13  2021 .Icecream Screen Recorder
drwxrwxrwx   1 owner    group        4096 Mar 28 02:51 .THypervBox
drwxrwxrwx   1 owner    group       12288 Sep 18 14:46 .VirtualBox
drwxrwxrwx   1 owner    group        4096 May 15 07:36 .android

默认模式是只读的。 您可以使用 -w 选项启用写访问权限。 -d 标志允许您使用不同的目录在服务器中共享。

以下示例为目录 C:\pc\test_folder 提供登录用户的写访问权限。

python -m pyftpdlib -w -d C:\pc\test_folder

输出:

[I 2022-09-22 19:55:47] concurrency model: async
[I 2022-09-22 19:55:47] masquerade (NAT) address: None
[I 2022-09-22 19:55:47] passive ports: None
[I 2022-09-22 19:55:47] >>> starting FTP server on 0.0.0.0:2121, pid=25560 <<<

检查它是否正在运行。

curl ftp://127.0.0.1:2121

输出:

drwxrwxrwx   1 owner    group           0 Feb 23  2022 New folder
-rw-rw-rw-   1 owner    group           0 Feb 23  2022 books.txt
-rw-rw-rw-   1 owner    group          18 Jun 09 15:58 hello.txt

要禁用匿名登录,您必须在启动服务器之前指定用户名和密码。

-u 选项允许您设置用户名,-P 选项帮助设置密码以登录到 FTP 服务器。

python -m pyftpdlib -w -d C:\pc\test_folder -u username -P password

输出:

[I 2022-09-23 00:16:12] concurrency model: async
[I 2022-09-23 00:16:12] masquerade (NAT) address: None
[I 2022-09-23 00:16:12] passive ports: None
[I 2022-09-23 00:16:12] >>> starting FTP server on 0.0.0.0:2121, pid=22732 <<<

执行此命令以列出共享目录。

curl --user username:password ftp://127.0.0.1:2121/

输出:

drwxrwxrwx   1 owner    group           0 Feb 23  2022 New folder
-rw-rw-rw-   1 owner    group           0 Feb 23  2022 books.txt
-rw-rw-rw-   1 owner    group          18 Jun 09 15:58 hello.txt

有关更多命令选项,请运行帮助命令。

python -m pyftpdlib --help

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便