在急需建立 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