DSF - 极简文件服务(Golang),简单的软件解决简单的需求

2021-03-30 12:40:40 +08:00
 nanmu42

DSF - 极简文件服务

一个非常简单的 HTTP 文件服务,可以把本地的文件暴露到局域网上。

仓库地址

https://github.com/nanmu42/dsf

动机

虽然python3 -m http.server也能用,但是...

用法

$ dsf -h
dsf 的用法:
  -port int
    	监听端口 (默认 8080)
  -root string
    	文件根目录 (默认 "./")

分享当前工作目录:

$ dsf
listening on: http://127.0.0.1:8080
listening on: http://::1:8080
listening on: http://192.168.0.6:8080
listening on: http://fe80::1234:1e11:abec:5678:8080~~~~

在特定端口分享特定目录:

$ dsf -port 3000 -root ~/images
listening on: http://127.0.0.1:3000
listening on: http://::1:3000
listening on: http://192.168.0.6:8080
listening on: http://fe80::1234:1e11:abec:5678:8080

安装

适用于 Linux, Mac 和 Windows 预编译二进制可以在这里找到: https://github.com/nanmu42/dsf/releases/

Gophers 可以这样安装:

go install github.com/nanmu42/dsf@latest

使用愉快!

License

MIT

4794 次点击
所在节点    分享创造
37 条回复
yeqizhang
2021-03-30 12:56:43 +08:00
能说说实际应用场景吗?分享文件?
nanmu42
2021-03-30 13:06:11 +08:00
@yeqizhang 对我来说,主要是:
* 内网分享打包好的程序 /apk/前端项目;
* 大文件内网传输,比企业 IM 快一些。
oott123
2021-03-30 13:11:22 +08:00
此时一位 darkhttpd 用户路过…
nanmu42
2021-03-30 13:12:46 +08:00
@oott123 哈哈哈,感谢路过。
yeqizhang
2021-03-30 13:28:12 +08:00
@nanmu42 好的,谢谢,请问这个是直接在 exe 目录下直接跑命令就可,还是有个安装过程,自动配了环境变量?
Tvulin
2021-03-30 13:34:36 +08:00
README 里面指定端口似乎写错了...
上面给定的 3000 端口,下面写的 8080
nanmu42
2021-03-30 13:35:33 +08:00
@yeqizhang Windows 的话,推荐下载后改名`dsf.exe`,放到你的 path 里,就可以在 cmd 里执行了。
如果不是特别习惯使用命令行,也可以直接双击执行,就是参数没法调整,而且当前工作目录不好确定。
nanmu42
2021-03-30 13:37:16 +08:00
@Tvulin 噢,真的是,谢谢你提醒,我改下。 (偷懒复制粘贴被发现了
不过 V2EX 没法编辑,这里就改不了了。
yeqizhang
2021-03-30 13:42:20 +08:00
@nanmu42 ok,挺小巧的,mark 一下,以后可能路由器上可以搞一个,自己编译一下
love
2021-03-30 13:46:23 +08:00
我现在用的是 https://github.com/svenstaro/miniserve/ 这个可以上传文件这点不错的,有时我用手机需要上传文件到电脑用这个也方便
missdeer
2021-03-30 14:05:07 +08:00
我也写过个类似的 https://github.com/missdeer/transfer/,支持了 http3 在某些环境下简直美滋滋
chenset
2021-03-30 14:07:36 +08:00
nginx 不是更简单吗
nanmu42
2021-03-30 14:16:28 +08:00
@chenset 见仁见智吧,我自己喜欢即用即走。
XIU2
2021-03-30 15:27:23 +08:00
我的一些小项目中附带的 Pages 需要在 git push 前预览一下网页效果。
因为是 Windows 系统,所以平时我都是用 Caddy,试了下你这个效果一样(连命令行参数都一样)。

不过 Caddy 的有 20 MB (感觉有点大材小用),你这个就 4.40 MB~
jerrodpoole
2021-03-30 15:29:28 +08:00
rclone.exe serve http --addr :8080 --user admin --pass password e:/
↑一直用 rclone,也是一条命令搞定支持。也支持 serve webdav/sftp/dlna/ftp 等等
JustSong
2021-03-30 16:03:45 +08:00
我之前也用 Go 写了一个,供参考: https://github.com/songquanpeng/go-file
0o0O0o0O0o
2021-03-30 17:32:10 +08:00
loading
2021-03-30 17:51:02 +08:00
nginx 不好么?
或者同是 golang 的 caddy 。
aheadlead
2021-03-30 17:56:37 +08:00
赞 能不能考虑集成个 upnp ?
SenLief
2021-03-30 18:19:00 +08:00
@love 如果是安卓手机不妨下载一个叫 文件闪传的 app,类似于 ftp,我现在拿来管理相册,传文件很好用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/766471

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX