主要用于从VPS取文件。
1 SimpleHTTPServer
首先进入到想要共享的目录,然后执行:
python -m SimpleHTTPServer
# python2
python -m http.server
# python3
是不是特简单!
默认是监听8000
端口,如果想指定端口,直接在命令后面加端口号即可,注意需要保证端口是打开的。不知道如何打开端口的同学,可以参考:
优点:架设简单
缺点:单线程
2 CuteHttpFileServer
打开官网:http://iscute.cn/chfs
下载之后解压,运行也非常简单:
./chfs --path="目录" --port=端口
当然,还有更多高级的玩法,详情见官网。算了,为了防止官网失联,我把它搬过来了,直接食用即可。
对了,文件的下载链接我放到文末了,当然也可以去官网自己下。
===================================以下摘自官网===================================
简介
CuteHttpFileServer/chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:
- 单个文件,核心功能无需其他文件
- 跨平台运行,支持主流平台:Windows,Linux和Mac
- 界面简洁,简单易用
- 支持扫码下载和手机端访问,手机与电脑之间共享文件非常方便
- 支持账户权限控制和地址过滤
- 支持快速分享文字片段
- 支持webdav协议
与其他常用文件共享方式(如FTP,飞秋,网盘,自己建站)相比,具有使用简单,适用场景更多的优点,在个人使用以及共享给他人的场景中非常方便快捷。
下载
文末
基本用法
非系统服务运行
该程序是一个控制台程序,可直接双击运行,或在控制台/命令行中运行。可通过命令行参数进行相关配置,如使用’chfs –help’来查看帮助:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
usage: chfs.exe [<flags>] Flags: --help Show context-sensitive help (also try --help-long and --help-man). --path=DIRECTORIES Directories where store shared files, separated by '|'. --port=PORT HTTP listening port(Default is 80). --allow=LIST Allowed IPv4 addresses(Allow any address by default). White list mode: "listitem1[,listitem2,...]" e.g. "192.168.1.2-192.168.1.10,192.169.1.222" allows this 10 addresses. Black list mode: "not(listitem1[,listitem2,...])" e.g. "not(192.168.1.2-192.168.1.10,192.169.1.222)" bans this 10 addresses! --rule=LIST Access rules(anybody can access any thing by default). List defines like:"USER:PWD:MASK[:DIR:MASK...][|...]": 1,USER and PWD is account name and password 2,MASK:''=NO present,'r'=read,'w'=write,'d'=delete 3,r=view+download,w=r+upload+create+rename,d=w+delete 4,DIR is directory name, allows wildcard('*' & '?') 5,The 3rd field is access mask of shared root directory 6,The optional fields is pairs of sub-directory and mask 7,The optional sub-directory's mask overwrite parent's 8,You should avoid '|' ':' and white space(exclude DIR) For instance: "::|root:123456:rw" bans guest, and defines a account 'root' can do anything --log=DIRECTORY Log directory. Empty value will disable log. --file=FILE A configuration file which overwrites & enhence the settings. --version Show application version.</flags> |
参数说明:
help: | 显示帮助信息 |
path: | 你要共享的目录,默认为程序运行目录。如果需要共享多个目录,则用“|”符号隔开。注意:如果路径带有空格,则需要将整个路径用引号包住。 |
port: | 程序使用的端口号,默认为80 |
allow: | IP地址过滤,可使用白名单模式或黑名单模式 |
rule: | 账户及访问权限,允许一个账户多点登陆,默认情况下匿名用户具有读写权限,其语法为:
RULEITEM1[|RULEITEM2|RULEITEM3…] 每个RULEITEM代表一个账户信息及其访问权限,多个RULEITEM则用’|’进行分割,RULEITEM的语法为: USER:PWD:MASK[:DIR:MASK…] 每个项由“:”来分隔,前三个项是必须的,分别对应:账户名、账户密码、共享目录根目录的访问权限。后面的可选的项,必须成对出现,用来设定根目录下面的子级目录的访问权限。一些规定: * 对于匿名用户,前两个项都为空 |
log: | 用户操作日志存放目录,默认是程序所在目录下的logs中。禁用日志功能只需将其赋值为空即可。 |
file: | 配置文件,该文件可配置上述配置项,语法相同,如果配置有效则覆盖对应配置项。另外,一些功能需要通过配置文件进行配置,比如页面自定义和SSL证书设置。下载配置文件模板 |
version: | 显示程序版本号 |
几个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
//都使用默认参数,共享目录为程序运行目录,监听端口号为80 chfs //共享目录为D盘,监听端口号为8080 chfs --path="d:/" --port=8080 //共享目录为"d:\\projects"和"e:\\nsis",监听端口号为80 chfs --path="d:\\projects|e:\\nsis" //白名单模式,允许192.168.1.2-192.168.1.100以及192.168.1.200进行访问 chfs --allow="192.168.1.2-192.168.1.100,192.168.1.200" //黑名单模式,禁止192.168.1.2-192.168.1.100以及192.168.1.200进行访问 chfs --allow="not(192.168.1.2-192.168.1.100,192.168.1.200)" //匿名用户具有只读权限(默认情况下匿名用户具有读写权限) //账户ceshizu,密码为ceshizu123,对根目录的权限为只读,但对test目录具有读写权限 //账户yanfazu,密码为yanfazu123,对根目录的权限为只读,但对yanfa目录具有读写权限 chfs --rule="::r|ceshizu:ceshizu123:r:test:rw|yanfazu:yanfazu123:r:yanfa:rw" //匿名用户什么权限都没有(默认情况下匿名用户具有读写权限) //账户admin,密码为admin123,具有读写权限 //账户zhangsan,密码为zhangsan123,对根目录的权限为不可读写,但对zhangsanfiles目录具有读写权限 chfs --rule="::|admin:admin123:rw|zhangsan:zhangsan123::zhangsanfiles:rw" //通过配置文件进行配置,该文件可以不存在,待以后需要更改配置时使用 chfs --file="d:\chfs\chfs.ini" |
Tips 1:在Windows系统中,可以使用右键弹出菜单快捷地共享某个目录。步骤如下:
1 2 3 |
1, 下载<a href="https://ypyssl.machunjie.com/machunjie/chfs-496.reg" target="_blank" rel="noopener noreferrer">注册表模板文件</a> 2, 在该文件中编辑你的chfs.exe的真实路径,并可添加其他参数 3, 双击该脚本文件,进行注册表添加 |
Tips 2:另外,有几个功能需要通过配置文件中进行配置,其中主要的配置项有:
1 2 3 4 5 |
1, html.title: 自定义网页标题 2, html.notice: 自定义网页顶部的公告板。可以是文字,也可以是HTML标签,此时,需要适用一对``(反单引号,通过键盘左上角的ESC键下面的那个键输出)来包住所有HTML标签 3, ssl.cert和ssl.key: 用来配置SSL,启用HTTPS 4, folder.leaf.download: 仅最后一个目录可以打包下载 5, session.timeout: 会话的时长,单位是分钟 |
以系统服务运行
本程序不是一个服务程序,所以如果你要以系统服务运行,需要自己创建服务。下面给出Windows平台的创建服务方法(通过NSSM工具):
1 2 3 4 5 6 7 |
1, 将chfs.exe放在指定目录,假设为:d:\program\cutehttpfileserver 2, 到<a href="https://machunjie-my.sharepoint.com/:f:/g/personal/mcj_machunjie_onmicrosoft_com/ElIHtnab89BGmvnahdaTtfIBF-wvUpclXozrX347Phr40g?e=hsJfom" target="_blank" rel="noopener noreferrer">http://www.nssm.cc/download</a>下载nssm 3, 将解压后的nssm程序放在d:\program\cutehttpfileserver中 4, 在d:\program\cutehttpfileserver中运行命令行,或运行命令行并CD至该目录 5, 假设你的服务名称为cute_http_file_service,命令行中输入:nssm install cute_http_file_service 6, NSSM会弹出配置对话框,在该对话框中输入程序路径以及运行参数 7, 启动服务,命令行中输入:nssm start cute_http_file_service |
高级用法
如何启用HTTPS?
配置文件中有ssl.cert和ssl.key两个键值,设置好对应的文件目录即可。另外,chfs支持的最低SSL版本为SSLv3,不兼容SSL2的握手。对了,别忘了将监听端口设置为443
我想自己搞一套页面,请问开发文档在哪里?
运行chfs后,通过地址:http://host:port/asset/api.html
访问API文档。
如何启用webdav?
程序默认支持webdav,跟http共用同一套访问规则。其地址为:http://host:port/webdav
测试说明
运行主机
- Windows XP:√
- Windows 10:√
- Debian 9:√
- CentOS 7:√
- 其他:未测试
PC浏览器
- IE:11+ √
- Edge:√
- Firefox:√
- Chrome:√
- Opera:√
- Safari:√
- 其他:未测试
3 dufs
我试用了下,这个也很好用~
用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Dufs is a distinctive utility file server - https://github.com/sigoden/dufs Usage: dufs [OPTIONS] [serve-path] Arguments: [serve-path] Specific path to serve [default: .] Options: -c, --config <file> Specify configuration file -b, --bind <addrs> Specify bind address or unix socket -p, --port <port> Specify port to listen on [default: 5000] --path-prefix <path> Specify a path prefix --hidden <value> Hide paths from directory listings, e.g. tmp,*.log,*.lock -a, --auth <rules> Add auth roles, e.g. user:pass@/dir1:rw,/dir2 -A, --allow-all Allow all operations --allow-upload Allow upload files/folders --allow-delete Allow delete files/folders --allow-search Allow search files/folders --allow-symlink Allow symlink to files/folders outside root directory --allow-archive Allow zip archive generation --enable-cors Enable CORS, sets `Access-Control-Allow-Origin: *` --render-index Serve index.html when requesting a directory, returns 404 if not found index.html --render-try-index Serve index.html when requesting a directory, returns directory listing if not found index.html --render-spa Serve SPA(Single Page Application) --assets <path> Set the path to the assets directory for overriding the built-in assets --log-format <format> Customize http log format --log-file <file> Specify the file to save logs to, other than stdout/stderr --compress <level> Set zip compress level [default: low] [possible values: none, low, medium, high] --completions <shell> Print shell completion script for <shell> [possible values: bash, elvish, fish, powershell, zsh] --tls-cert <path> Path to an SSL/TLS certificate to serve with HTTPS --tls-key <path> Path to the SSL/TLS certificate's private key -h, --help Print help -V, --version Print version |
最关键的是,它竟然支持API
:
上传:
curl -T path-to-file http://127.0.0.1:5000/new-path/path-to-file
下载:
curl http://127.0.0.1:5000/path-to-file # download the file
curl http://127.0.0.1:5000/path-to-file?hash # retrieve the sha256 hash of the file
除此之外,还有其他高级用法,可以到官网瞅一瞅:
附
件
下
载