Python 中的一行 FTP 服务器
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
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串