admin管理员组文章数量:1794759
python简单实现文件上传/下载
如果团队想要共享一个文件夹,可以在服务器上共享文件夹,支持文件上传和下载。
本文主要介绍两种方式。
方法一本方法主要使用python的http.server和droopy模块实现共享文件夹和文件上传。不用自己写代码,都有现成的,适合我这种懒人。
共享文件夹两个版本的命令: python2:
python -m SimpleHTTPServer 1234python3:
python3 -m http.server 1234后面数字是自定义端口,1234确保在服务器的控制台打开安全组
后台运行为了让它可以在后台运行,写个简易脚本share.sh share.sh文件内容,使用python自带的http模块开启服务,默认端口8000,这里自定义为1234
#!/bin/bash python3 -m http.server 1234执行
nohup ./share.sh >> ../share.log 2>&1 &这里的“2>&1”表示将标准错误输出转变化标准输出,可以将错误信也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr) ../share.log根据自己需求修改存储的路径位置,这里存在上层目录中。
这样就可以提供一个可以下载的共享站点的,共享的就是脚本当前运行的目录,比如DirForUpload。但是上面只能支持下载,并不支持上传,我们可以使用droopy来搭建一个简单的上传服务。
安装droopy pip install droopy安装完之后还要下载一个droopy.python的python脚本
wget stackp.online.fr/wp-content/uploads/droopy下载完之后启动这个脚本就开启了droopy服务了
python ./droopy -m "now can upload file"注意:参数不支持中文
可以先测试一下。
后台运行如果要在后台运行,可以把命令写成脚本,然后nohup后台运行
nohup bash droopy.sh >> droopy.log 2>&1 &默认是8000端口,我们自定义为8001
文件脚本droopy.sh的内容:
#!/bin/bash python $PWD/droopy -m "select file to upload" -d /root/project/directories/DirForUpload/ -p logo.jpg 8001 #nohup ./droopy.sh >> droopy.log 2>&1 &如果改变端口,直接修改末尾的数字,也要注意打开安全组
改变上传目录,修改-d后的路径参数
修改主页展示图片,修改-p参数,更多参考下面:
Usage: droopy [options] [PORT] Options: -h, --help show this help message and exit -d DIRECTORY, --directory DIRECTORY set the directory to upload files to -m MESSAGE, --message MESSAGE set the message -p PICTURE, --picture PICTURE set the picture –dl provide download links –save-config save options in a configuration file –delete-config delete the configuration file and exit 启动分别使用上述两个命令在控制台启动share.sh和droopy.sh两个脚本。也就是使用两个端口分别提供共享(下载)和上传功能,之后
打开浏览器
127.0.0.1:1234/ 展示文件,支持下载到本地
127.0.0.1:8001/ 可以上传文件
查看后台进程:ps或者jobs
或者
ps -aux | grep [port]直接按照端口号查找开启的服务
杀死进程 kill [PID] 方法二上述方法虽然简单,不用自己写代码,但是功能过于单一,需要耗费服务器上的两个端口,分别进行上传和下载。那么能不能将二者合二为一呢,或者增加更多的功能?
参见本人另一篇博客 linux服务器使用python实现文件远程上传下载的http服务器,或者直接前往GitHub使用代码:HTTP_SERVER,下载之到本地后直接在控制台输入:
python HTTP_SERVER.py运行即可。
版权声明:本文标题:python简单实现文件上传下载 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686906924a116793.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论