易共享 (将文件夹变成网页!)
Tofloor
poster avatar
comzhong
deepin
2017-12-20 20:22
Author
本帖最后由 comzhong 于 2017-12-21 21:17 编辑

http://iscute.me/chfs

简介该程序是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。它具有以下特点:


单个文件,整个软件只有一个可执行程序,无配置文件等其他文件
部署简单
跨平台运行,支持Windows(xp sp2及其以上版本)和Linux
界面简洁,简单易用
支持扫码下载和手机端访问,手机与电脑之间共享文件非常方便
与其他常用文件共享方式(如FTP,飞秋)相比,访问者只需要打开浏览器直接访问地址即可,无需额外下载专用客户端。在个人使用以及共享给他人的场景中非常方便快捷。

注意:--path=   参数后的路径分隔符在 Windows 也要用“/”,而不是"\"

下载
chfs-linux-x64-0.3.zip
chfs-linux-x86-0.3.zip
chfs-windows-x64-0.3.zip
chfs-windows-x86-0.3.zip

使用非系统服务运行
该程序是一个控制台程序,可直接双击运行,或在控制台/命令行中运行。可通过命令行参数进行相关配置,如使用'chfs --help'来查看帮助:
  1. usage: chfs [< flags >]

  2. Flags:
  3.   --help            Show context-sensitive help (also try --help-long and
  4.                     --help-man).
  5.   --path=DIRECTORY  Directory where host shared files(Default is current
  6.                     directory).
  7.   --port=PORT       HTTP listening port(Default is 80).
  8.   --version         Show application version.
Copy the Code

参数说明:
help:显示帮助信息
path:你要共享的根目录,默认为程序运行目录。比如:共享"d:\http_shared_root"目录,运行参数:"chfs --path="d:\http_shared_root""。注意:如果路径带有空格,则需要将整个路径用引号包住!
port:程序使用的端口号,默认为80
version:显示程序版本号

几个例子:
  1. //都使用默认参数,共享目录为程序运行目录,监听端口号为80
  2. chfs

  3. //共享目录为D盘,监听端口号为8080
  4. chfs --path="d:" --port=8080

  5. //共享目录为"/home/jack/myshared files",监听端口号为80
  6. chfs --path="/home/jack/myshared files"
Copy the Code

以系统服务运行
本程序不是一个服务程序,所以如果你要以系统服务运行,需要自己创建服务。下面给出Windows平台的创建服务方法(通过NSSM工具):
  1. 1, 将chfs.exe放在指定目录,假设为:d:\program\cutehttpfileserver
  2. 2, 到http://www.nssm.cc/download下载nssm
  3. 3, 将解压后的nssm程序放在d:\program\cutehttpfileserver中
  4. 4, 在d:\program\cutehttpfileserver中运行命令行,或运行命令行并CD至该目录
  5. 5, 假设你的服务名称为cute_http_file_service,命令行中输入:nssm install cute_http_file_service
  6. 6, NSSM会弹出配置对话框,在该对话框中输入程序路径以及运行参数
  7. 7, 启动服务,命令行中输入:nssm start cute_http_file_service
Copy the Code


问答
怎么可以通过外网访问共享?

你要确保外网能够访问你的服务器,最简单的方法是购买云服务器或虚拟主机。另外,如果你的宽带有独立外网IP,那么也可以在路由中配置虚拟服务器,这样外网就可以通过这个IP进行访问了。如果宽带没有独立IP,则可以使用DDNS即动态域名解析方式。


可不可以给服务绑定个域名,然后通过域名访问?

可以的,可以直接在域名服务商中将你的域名指向你的服务器地址即可。当然,专业用户可以配合Nginx,Apache等HTTP代理服务运行。


我已安装了系统服务,为何浏览器中访问不了?

可能的原因有很多,可通过以下步骤排查:

  • 确保你的浏览器版本是否被支持
  • 确保访客电脑能够访问你的服务器
  • 打开进程管理器查看chfs进程是否存在
  • 停止服务,通过命令行,并且以同样的运行参数运行程序,并访问测试
  • 仍失败的话就联系作者


测试说明运行主机
Windows XP:√
Windows 10:√
Debian 9:√
CentOS 7:√
其他:未测试

PC浏览器
IE:11+ √
Edge:√
Firefox:√
Chrome:√
Opera:√
Safari:√
其他:未测试
Reply Favorite View the author
All Replies
avatar
老银杏
deepin
2017-12-20 20:44
#1
有多个目录共享怎么办?
Reply View the author
avatar
187******69
deepin
2017-12-20 21:37
#2
https://bbs.deepin.org/post/150422
有多个目录共享怎么办?

无解,除非多个目录之间有一个共同的父目录或者叫根目录。
这东西应该是一个小型的 web 服务软件,和 Apache 之类的一样的,只是实现了基本的功能,不需要的功能全部阉割了。
Reply View the author
avatar
comzhong
deepin
2017-12-20 21:44
#3
本帖最后由 comzhong 于 2017-12-20 13:52 编辑
https://bbs.deepin.org/post/150422
有多个目录共享怎么办?

搞一个目录软连接到共享目录,
比如在Windows下,共享 F:\  ,想同时共享 E:\
在 F:\ 用 mklink 建立软连接
  1. cd /d f:\
  2. mklink /d E E:\
Copy the Code



Linux下用 Linux 软连接========================
ln -s Target Link
Reply View the author
avatar
饮料再好也比不上麦芽发酵
deepin
2017-12-20 22:56
#4
在用,局域网内多设备间传送文件,很是方便
Reply View the author
avatar
老银杏
deepin
2017-12-20 23:38
#5
本帖最后由 sxfxx 于 2017-12-20 15:41 编辑

设置共享根目录后,默认的还是程序所在的目录,除非共享的根目录与程序所在的盘不一样
Reply View the author
avatar
comzhong
deepin
2017-12-20 23:50
#6
本帖最后由 comzhong 于 2017-12-21 14:34 编辑
https://bbs.deepin.org/post/150422
设置共享根目录后,默认的还是程序所在的目录,除非共享的根目录与程序所在的盘不一样 ...

chfs.exe 在 E 盘,共享 F:\
  1. E:\>chfs --path="F:/"

  2. *****************************************
  3.        CUTE HTTP FILE SERVER 0.3
  4.        website: http://iscute.me/chfs
  5.        author: docblue@163.com
  6. *****************************************

  7. - Listening port:       80
  8. - Shared directory:     F:\
  9. - Your websites:        http://10.9.82.53  http://192.168.137.1
  10. http://192.168.0.114  http://192.168.83.1  http://192.168.183.1
Copy the Code


注意,要写 --path="E:/",不能是:--path="E:" 或者 --path="E:\"

  1. E:\Deepin>chfs --path="E:/"

  2. *****************************************
  3.        CUTE HTTP FILE SERVER 0.3
  4.        website: http://iscute.me/chfs
  5.        author: docblue@163.com
  6. *****************************************

  7. - Listening port:       80
  8. - Shared directory:     E:\
  9. - Your websites:        http://10.9.18.3  http://192.168.137.1
  10.   http://192.168.0.114 http://192.168.83.1  http://192.168.183.1
Copy the Code

Reply View the author
avatar
135******79
deepin
2017-12-21 00:08
#7
赞,可惜不能直接下载整个文件夹
Reply View the author
avatar
comzhong
deepin
2017-12-21 00:56
#8
https://bbs.deepin.org/post/150422
赞,可惜不能直接下载整个文件夹

可以给作者发邮件提建议
Reply View the author
avatar
billy123456
deepin
2017-12-21 07:02
#9
这种东西,没啥用。系统自带的命令python -m SimpleHTTPServer就是干这活的,用得着再搞一个程序?
Reply View the author
avatar
纯洁的老污师
deepin
2017-12-21 10:59
#10
https://bbs.deepin.org/post/150422
有多个目录共享怎么办?

https://github.com/gileshuang/go-simple-httpd
和楼主这个基本一样的功能,即:简单的静态 http index 服务器。
当然有几点不同:
1、我这个支持配置多个目录,只需要多次指定 -dir 参数即可,理论可以支持配置无限多个目录,访问时需要通过映射的虚拟子路径访问。
2、我这个写得很烂,也就估计几万的并发(估测,没实际测试,取决于硬件性能和网络性能),但是这个性能就算拿到企业级高流量机房作为下载服务器也是完全没有问题的。
3、这是完全开源的,可以在Linux、Windows、MacOS、x86、ARM等各个平台、各个架构编译运行(感谢Go语言)。通过其源码你会发现,其实就是一个无比简陋的东西,代码量总计不到70行。(通过阅读代码,你会发现第二点是成立的)
Reply View the author
avatar
老银杏
deepin
2017-12-21 17:53
#11
https://bbs.deepin.org/post/150422
chfs.exe 在 E 盘,共享 F:\ ,完全正常


F:\源程序\文件共享服务器>chfs --path="f:" --port=8081

*****************************************
       CUTE HTTP FILE SERVER 0.3
       website: http://iscute.me/chfs
       author: docblue@163.com
*****************************************

- Listening port:       8081
- Shared directory:     F:\源程序\文件共享服务器
- Your websites:        http://192.168.2.38:8081

Reply View the author
avatar
comzhong
deepin
2017-12-21 22:32
#12
https://bbs.deepin.org/post/150422
F:\源程序\文件共享服务器>chfs --path="f:" --port=8081

*****************************************

注意,要写 --path="E:/",不能是:--path="E:" 或者 --path="E:\"

  1. E:\Deepin>chfs --path="E:/"

  2. *****************************************
  3.        CUTE HTTP FILE SERVER 0.3
  4.        website: http://iscute.me/chfs
  5.        author: docblue@163.com
  6. *****************************************

  7. - Listening port:       80
  8. - Shared directory:     E:\
  9. - Your websites:        http://10.9.18.3  http://192.168.137.1
  10.   http://192.168.0.114 http://192.168.83.1  http://192.168.183.1
Copy the Code
Reply View the author
avatar
老银杏
deepin
2017-12-22 04:37
#13
https://bbs.deepin.org/post/150422
注意,要写 --path="E:/",不能是:--path="E:" 或者 --path="E:\"

谢谢
Reply View the author