V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
sigoden
V2EX  ›  分享创造

Duf 是一款简单的文件服务器, 支持静态文件伺服、上传、下载、webdav 云盘...

  •  2
     
  •   sigoden · 2022-06-06 08:17:06 +08:00 · 4939 次点击
    这是一个创建于 661 天前的主题,其中的信息可能已经有所发展或是发生改变。

    demo

    特性

    • 静态文件伺服
    • 下载目录为 zip 文件
    • 上传文件 /目录 (支持拖拽)
    • 搜索
    • 并发下载,断续下载
    • 权限保护
    • 支持 https
    • 支持 webdav
    • 方便 curl 调用

    用 Rust 编写,单可执行文件,跨平台

    其他

    项目地址: https://github.com/sigoden/duf

    30 条回复    2023-10-09 10:52:48 +08:00
    wym0823
        1
    wym0823  
       2022-06-06 08:41:28 +08:00
    非常不错,体验很好!
    hnbcinfo
        2
    hnbcinfo  
       2022-06-06 09:02:37 +08:00
    这个好,最近正在找一个,这种简单方便的静态资源项目。感谢
    ifoolish
        3
    ifoolish  
       2022-06-06 09:11:55 +08:00 via iPhone
    试试。之前简单的需求都用 darkhttp
    makelove
        4
    makelove  
       2022-06-06 09:14:24 +08:00
    不错。duf 似乎哪里听到过,一搜原来是 https://github.com/muesli/duf
    boko
        5
    boko  
       2022-06-06 09:17:44 +08:00 via Android   ❤️ 1
    http://iscute.cn/chfs
    之前用过类似的 chfs
    diegozhu
        6
    diegozhu  
       2022-06-06 09:22:48 +08:00
    支持 ipv6 不?
    gesse
        7
    gesse  
       2022-06-06 10:09:37 +08:00
    项目看着不错,如果是简单的文件下载一下,可以
    ```
    python3 -m http.server 8080
    ```
    Acoffice
        8
    Acoffice  
       2022-06-06 10:10:10 +08:00
    建议支持常规文件的在线预览以及指定目录的功能
    supermoonie
        9
    supermoonie  
       2022-06-06 10:21:23 +08:00
    启动命令: duf --allow-all --path-prefix duf -a user:pwd /public/static/
    nginx 配置:location /duf { proxy_pass http://127.0.0.1:5000/duf; }
    访问链接: http://example.com/duf
    通过上面的链接访问,content-type 为 application/octet-stream ,直接把 index.html 下载下来了
    Davic1
        10
    Davic1  
       2022-06-06 10:47:13 +08:00
    in rust, nice
    sigoden
        11
    sigoden  
    OP
       2022-06-06 11:19:16 +08:00
    @diegozhu 下一次发布会支持 ipv6

    @supermoonie 当前默认页面返回时是没有 content-type 头的,返回 content-type: application/octet-stream 很奇怪的。下一个版本会添加 content-type: text/html ,但不确定会不会修复你说的问题

    @Acoffice 预览引入太多复杂性了,现在的前端页面是纯原生没有任何依赖的。一些常规文件比如文本,视频等浏览器是能打开的,对多数人来说够用了。不明白你说的指定目录时什么意思。
    Acoffice
        12
    Acoffice  
       2022-06-06 11:25:56 +08:00
    @sigoden #11 常规的预览,目前差不多都有现成的 js 可用.
    指定目录这个 pass 把,一开始没看到 `path`参数 /尴尬
    supermoonie
        13
    supermoonie  
       2022-06-06 13:19:59 +08:00
    @sigoden 返回 content-type: application/octet-stream 是因为 nginx 配置的默认 content-type ,因为我看你代码里没有设置 content-type ,应该是 nginx 默认处理成 application/octet-stream 了。你加一下请求头,完了我再试一下
    littlewing
        14
    littlewing  
       2022-06-06 13:22:12 +08:00
    跟 filebrowser 和 h5ai 相比,优势是什么?
    AlisaDestiny
        15
    AlisaDestiny  
       2022-06-06 16:56:27 +08:00
    老哥写 Rust 哪个 IDE 比较好用
    vinsa
        16
    vinsa  
       2022-06-06 17:11:52 +08:00
    真不错
    bbis
        17
    bbis  
       2022-06-06 17:30:37 +08:00
    已加星。
    sigoden
        18
    sigoden  
    OP
       2022-06-06 18:04:35 +08:00
    @Acoffice 很多场景和用户并不需要预览,目前不打算提供。前端 js 原则上倾向于维持原生,暂不会引入任何第三方依赖。

    @littlewing 文件服务有很多,选个满足需求的就行。

    @AlisaDestiny vscode + rust-analyzer
    yanzhiling2001
        19
    yanzhiling2001  
       2022-06-07 00:13:17 +08:00
    两个 Linux 版本的打包都是 musl 的,有没有常规的 glibc 的
    Johnoo
        20
    Johnoo  
       2022-06-07 08:10:56 +08:00 via Android
    aList 似乎更牛逼些
    sigoden
        21
    sigoden  
    OP
       2022-06-07 09:15:20 +08:00
    更新了一个版本

    @yanzhiling2001 glibc 会有兼容性问题,比如现在 github-ci ubuntu-latest (20.04) 生成的可执行文件就没法再 ubuntu 18.04 上运行。
    hanguofu
        22
    hanguofu  
       2022-06-07 09:25:44 +08:00
    谢谢分享,预览的功能我也觉得没什么必要。
    fwindcore
        23
    fwindcore  
       2022-06-07 09:29:16 +08:00
    不错啊,挺方便的,比`npx http-server`好用
    siweipancc
        24
    siweipancc  
       2022-06-07 13:19:05 +08:00 via iPhone
    这个不错,可视化
    molezznet
        25
    molezznet  
       2022-06-07 17:36:02 +08:00
    star watch 了, 好用,webdav ,cli 都支持真是方便,等 v6 的
    ydongd
        26
    ydongd  
       2022-06-09 16:02:11 +08:00
    哈哈,引个流。像百度网盘的网盘 https://github.com/yddeng/filecloud
    yyysuo
        27
    yyysuo  
       2022-06-10 11:16:37 +08:00
    跟 alist 有什么区别?
    jemyzhang
        28
    jemyzhang  
       287 天前
    @sigoden 试用了一下,登录账号后没有地方退出,上传文件后也不显示,看文件夹下面已经有上传的文件了。用了 docker ,version 0.34.2
    jemyzhang
        29
    jemyzhang  
       287 天前
    @sigoden 登录过账号后,修改账号相关的配置,docker recreate 后,网页上就再也登录不了了,显示 forbidden
    fever
        30
    fever  
       171 天前
    好用,谢谢分享,star 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3247 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:42 · PVG 19:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.