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

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

  •  2
     
  •   sigoden · 66 天前 · 3308 次点击
    这是一个创建于 66 天前的主题,其中的信息可能已经有所发展或是发生改变。

    demo

    特性

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

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

    其他

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

    27 条回复    2022-06-10 11:16:37 +08:00
    wym0823
        1
    wym0823  
       66 天前
    非常不错,体验很好!
    hnbcinfo
        2
    hnbcinfo  
       66 天前
    这个好,最近正在找一个,这种简单方便的静态资源项目。感谢
    ifoolish
        3
    ifoolish  
       66 天前 via iPhone
    试试。之前简单的需求都用 darkhttp
    makelove
        4
    makelove  
       66 天前
    不错。duf 似乎哪里听到过,一搜原来是 https://github.com/muesli/duf
    boko
        5
    boko  
       66 天前 via Android   ❤️ 1
    http://iscute.cn/chfs
    之前用过类似的 chfs
    diegozhu
        6
    diegozhu  
       66 天前
    支持 ipv6 不?
    gesse
        7
    gesse  
       66 天前
    项目看着不错,如果是简单的文件下载一下,可以
    ```
    python3 -m http.server 8080
    ```
    Acoffice
        8
    Acoffice  
       66 天前
    建议支持常规文件的在线预览以及指定目录的功能
    supermoonie
        9
    supermoonie  
       66 天前
    启动命令: 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  
       66 天前
    in rust, nice
    sigoden
        11
    sigoden  
    OP
       66 天前
    @diegozhu 下一次发布会支持 ipv6

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

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

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

    @AlisaDestiny vscode + rust-analyzer
    yanzhiling2001
        19
    yanzhiling2001  
       65 天前
    两个 Linux 版本的打包都是 musl 的,有没有常规的 glibc 的
    Johnoo
        20
    Johnoo  
       65 天前 via Android
    aList 似乎更牛逼些
    sigoden
        21
    sigoden  
    OP
       65 天前
    更新了一个版本

    @yanzhiling2001 glibc 会有兼容性问题,比如现在 github-ci ubuntu-latest (20.04) 生成的可执行文件就没法再 ubuntu 18.04 上运行。
    hanguofu
        22
    hanguofu  
       65 天前
    谢谢分享,预览的功能我也觉得没什么必要。
    fwindcore
        23
    fwindcore  
       65 天前
    不错啊,挺方便的,比`npx http-server`好用
    siweipancc
        24
    siweipancc  
       65 天前 via iPhone
    这个不错,可视化
    molezz765
        25
    molezz765  
       65 天前
    star watch 了, 好用,webdav ,cli 都支持真是方便,等 v6 的
    ydongd
        26
    ydongd  
       63 天前
    哈哈,引个流。像百度网盘的网盘 https://github.com/yddeng/filecloud
    yyysuo
        27
    yyysuo  
       62 天前
    跟 alist 有什么区别?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2840 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 14:03 · PVG 22:03 · LAX 07:03 · JFK 10:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.