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
相关文章
在 Python 中检查 Argparse 的参数
发布时间:2023/06/20 浏览次数:125 分类:Python
-
本篇文章将讨论 argparse 的使用,我们将使用条件语句和 Python 中的参数名称检查 argparse 中是否存在参数。在 Python 中检查 argparse 的参数
Python 循环缓冲区
发布时间:2023/06/20 浏览次数:51 分类:Python
-
循环缓冲区是环形缓冲区的另一个名称。 Python 中的高效循环缓冲区。高效的循环缓冲区是一种允许高效插入和删除数据的数据结构。
Cron 类似 Python 中的调度程序
发布时间:2023/06/20 浏览次数:120 分类:Python
-
本篇文章将介绍调度类似于 Linux 中的 cron 作业的任务。 首先,我们将查看调度模块以在进程内调度中调度我们的作业。
通过 Crontab 执行 Python 脚本
发布时间:2023/06/20 浏览次数:57 分类:Python
-
在本文中,我们将探讨 Crontab 以及如何使用它来运行 Python 脚本。Linux/Unix/Solaris 中的 Crontab
克隆 Git 存储库的 Python 方法
发布时间:2023/06/20 浏览次数:196 分类:Python
-
让我们看看我们可以在 Python 环境中克隆 Git 存储库的不同方法。使用 PyCharm 克隆 Git 存储库
在 Python 中计算两个 GPS 点之间的距离
发布时间:2023/06/19 浏览次数:134 分类:Python
-
计算两个 GPS 点之间的距离是我们可以在 Python 框架内操作的地理和数学练习。 现在让我们看看如何使用 Python 执行此操作。在 Python 中使用 Haversine 公式计算两个 GPS 点之间的距离
Python 中的 Verbose
发布时间:2023/06/19 浏览次数:70 分类:Python
-
在这个简短的指南中,我们将学习 verbose 以及如何在 Python 中实现它。Python 中的详细信息 详细模式是一种计算功能,也是许多计算机操作系统和编程语言中的通用概念。
Python 中的 Promise 系列
发布时间:2023/06/19 浏览次数:61 分类:Python
-
本篇文章将介绍如何用 Python 编写一系列 promise。 首先,我们将讨论 Python 中的异步编程。接下来,我们将讨论 Python 中的回调函数。
Python 中的队优先级列比较器
发布时间:2023/06/19 浏览次数:192 分类:Python
-
本文将研究使用 Python 开发自定义优先级队列。 除此之外,我们还将学习如何将自定义比较器函数与优先级队列一起使用。Python 中的优先级队列