Pages

Thursday, 17 October 2024

非常简单的基于Python3的HTTP server

 在急需建立 HTTP Server 的场合十分有用,比如临时分享文件之类。在 HTTP Server 访问的根目录下只需执行一行命令就能搞定:

$ python -m SimpleHTTPServer

但是随着 Python 2 逐渐被 Python 3 取代,上述命令无法继续使用。

在 Python3 中没有 SimpleHTTPServer,而是直接使用http.server 即可。所以对应的 Python 3 命令是:

$ python3 -m http.server

默认开启的 HTTP Server 服务监听的是 8000 端口,使用时注意系统防火墙是否放行。如需使用其他端口,只需在命令末尾加上端口号即可,如使用端口 1234:

$ python3 -m http.server 1234

后台运行

上述 Python 运行的 HTTP 服务器必须前台运行命令,并实时输出 log,断开终端后自动停止服务。这时可以借助 nohup 命令使其后台运行:

$ nohup python3 -m http.server 1234 >> /dev/null &

当然你也可以使用其他方法如 screen 等工具实现后台运行,再此就不赘述了。

---------------------------------------------

Build a FTP Server

pip3 install pyftpdlib --user

python -m pyftpdlib -p 21    # notice: it's ftpd, not ftp

# if you want a username and password
python -m pyftpdlib -u USERNAME -P PASSWORD

A powershell script could run in Windows

place a file named “ftp.ps1” with the following content:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Set-Location -Path D:\Download
Start-Process -NoNewWindow python --version
python -m pyftpdlib -p 21 -u USERNAME -P PASSWORD
Read-Host -Prompt "Press Enter to exit"

and then run with Powershell

--------------------------------

FTP服务器搭建​​


​​模块安装​​

​python没有内置ftp模块,但要使用它却很简单,我们只需要简单的通过pip安装第三方模块pyftpdlib即可:​

pip3 install pyftpdlib --user

​模块安装完成后,我们找到需要共享的目录,然后启动cmd后,输入:​

python -m pyftpdlib -p 21

​之后浏览器登陆​ftp://ip:port​这样就开启了一个最简单的ftp共享服务。​


​之后,我们在使用xftp工具登陆:​

​但此时,我们只是通过匿名用户访问的,只能使用ftp下载功能,无法上传。​


​​高级使用​​

​简单的ftp搭建方式,肯定不满足我们的要求,那么我么就需要进行二次开发了!但也仅仅需要几行代码而已:​

from pyftpdlib.handlers import FTPHandler

from pyftpdlib.servers import FTPServer

from pyftpdlib.authorizers import DummyAuthorizer


authorizer = DummyAuthorizer()

authorizer.add_user('python', '123456', 'F:\\Working~Study', perm='elradfmwM')

handler = FTPHandler

handler.authorizer = authorizer


server = FTPServer(('0.0.0.0', 8888), handler)

server.serve_forever()


Python一秒搭建ftp服务器,帮助你在局域网共享文件。

​是不是很简单呢?​


No comments:

Post a Comment