迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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

上一篇:在 Python 中检查 Argparse 的参数

下一篇:没有了

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

本文地址:

相关文章

在 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 中的优先级队列

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便