爱意满满的作品展示区。
machengim

做了一个自建文件服务器

  •  
  •   machengim · Oct 29, 2021 · 9417 views
    This topic created in 1834 days ago, the information mentioned may be changed or developed.
    类似于 http-server ,可以通过 http 访问服务器上的指定目录,不过功能上略多一点,包括用户验证,常见文件预览或播放,播放列表,srt 字幕支持,分享链接,移动端适配等。有主要操作系统 x86 64 的 release ,其他系统需要自己构建。文件体积大约 10~15M 。技术栈是 svelte 和 rust 。请各位大佬指正,谢谢。

    https://github.com/machengim/oasis
    Supplement 1  ·  Oct 30, 2021
    感谢各位的支持,局域网 IP 的问题已经修复,目前可以修改配置文件 `oasis.conf` 来指定 IP 和端口。在不指定的情况找不到局域网 IP 也不会异常退出,而是提示没有找到,但用户仍可以输入正确的 IP 来访问。没有 IPv6 的环境无法测试,有条件的大佬可以配置 IPv6 的地址试试。
    64 replies  •  2021-12-14 20:51:30 +08:00
    771007147
    771007147
    Oct 29, 2021❤️1
    1
    UI 看起来不错,提供一个在线预览就更好了
    MakeItGreat
    MakeItGreat
    Oct 29, 2021 via Android
    2
    有兴趣做一个下面预览当前目录的 index.md 吗?
    MakeItGreat
    MakeItGreat
    Oct 29, 2021 via Android
    3
    @MakeItGreat 就是文件目录下面或者上面预览
    weak
    weak
    Oct 29, 2021 via iPhone
    4
    感觉还不错
    makelove
    makelove
    Oct 29, 2021❤️1
    5
    看着不错,比我现在用的 miniserve 好看多了,那个真是完全没有设计。

    不过那个有个功能挺有用,就是可以上传,我用来在手机上发文件到电脑,否则我 Android 发到 Linux 主力机还是挺不方便的。
    iikebug
    iikebug
    Oct 29, 2021❤️1
    6
    看起来可以,就是 build 脚本为什么要用 py3 来做?直接 node 一把梭不好吗?
    aboat365
    aboat365
    Oct 29, 2021
    7
    rust 开发的程序果然非常小巧,作为一个网盘非常不错。建议增加文件上传功能,这比各种在线预览更加实用。
    pompeii
    pompeii
    Oct 29, 2021
    8
    Error: Cannot retrieve local ip
    cweijan
    cweijan
    Oct 29, 2021
    9
    看起来不错, star 一波, 很久前就一直想找一个开源的 web 文件管理器, 用于在手机上管理 pc 文件.
    40EaE5uJO3Xt1VVa
    40EaE5uJO3Xt1VVa
    Oct 29, 2021
    10
    svelte 体验如何
    Zchary
    Zchary
    Oct 29, 2021 via iPhone
    11
    这技术栈就很厉害
    machengim
    machengim
    OP
    Oct 29, 2021
    12
    @771007147 也有考虑,不过可能要先做 https 功能
    machengim
    machengim
    OP
    Oct 29, 2021
    13
    @MakeItGreat 可以考虑,不过感觉像是在复刻 github :)
    machengim
    machengim
    OP
    Oct 29, 2021
    14
    @iikebug 多谢提醒,确实没想过,可能是习惯了。后面就改成 node 。
    machengim
    machengim
    OP
    Oct 29, 2021
    15
    @pompeii 应该是因为 IP 地址。目前 rust 没有什么很好的本机 IP 的确认方法,所以土法炼钢写了一个大致的局域网 IP 范围,为了排除一些奇奇怪怪的设备所以没有考虑除 192.168.0.0.x 以外的 192.168 网段。大佬们有什么建议的处理方法吗?
    machengim
    machengim
    OP
    Oct 29, 2021
    16
    @yanzhiling2001 感觉跟 react 写法很像,但比 react 更轻快,特别是自带的 store 比 react 的 context 易用很多。不过生态还不够成熟,可能要自己造点轮子。
    alect
    alect
    Oct 29, 2021
    17
    搞一个访问家里的电影,当在线影院如何
    alect
    alect
    Oct 29, 2021
    18
    刚测试了下,貌似不支持 ipv6 ?
    machengim
    machengim
    OP
    Oct 29, 2021
    19
    @alect 是,目前不支持 IPv6
    alect
    alect
    Oct 29, 2021❤️1
    20
    @machengim #19 还想着拿来远程看家里下的电影呢,加油改进。整体运行挺好的。
    crab
    crab
    Oct 29, 2021
    21
    Error: Cannot retrieve local ip

    不在 0.0 ,IP 能不能弄成参数手动指定。
    defunct9
    defunct9
    Oct 29, 2021
    22
    miniserve 很不错啊, 在 k8s 里跑了一个,做 nginx ingress 的 503 整体自定义
    machengim
    machengim
    OP
    Oct 29, 2021
    23
    @crab 好的,这两天就改一下。
    bequt
    bequt
    Oct 29, 2021
    24
    不错,是否准备做 webd 支持呢
    machengim
    machengim
    OP
    Oct 29, 2021
    25
    @bequt 不太了解,暂时没有打算。
    itechify
    itechify
    Oct 29, 2021 via Android
    26
    支持,这才是开源应有的样子👍
    hanguofu
    hanguofu
    Oct 30, 2021
    27
    看起来很牛的样子,这么多技术栈 ~~~ 请问有没有打算支持 文件上传啊 ?
    root01
    root01
    Oct 30, 2021
    28
    双击 oasis.exe ,释放 db 目录后,啥反应也没了
    machengim
    machengim
    OP
    Oct 30, 2021 via Android❤️1
    29
    @hanguofu 看来这个需求比较多,以后会考虑加上
    machengim
    machengim
    OP
    Oct 30, 2021 via Android
    30
    @root01 一般会一个黑框程序在运行,里面有服务器的局域网 ip 地址和端口,用浏览器访问就行。如果没有看到这个程序,八成是 IP 不在范围内,程序没启动起来。我这两天会修一下。
    caokeck
    caokeck
    Oct 30, 2021
    31
    好东西,之前有这个需要就自己写了一个,不过十分简陋。 这个已经完全可以满足我的需求了。
    abear
    abear
    Oct 30, 2021
    32
    rust
    Michelangelono
    Michelangelono
    Oct 30, 2021
    33
    打开弹出 cmd 然后迅速关闭,好像也是提示 Error: Cannot retrieve local ip
    basaka
    basaka
    Oct 30, 2021
    34
    本机 IP 80 端口被用了直接消失,可以先设置地址和端口在运行比较好
    Mantext1989
    Mantext1989
    Oct 30, 2021
    35
    可以添加多个文件夹吗?
    Mantext1989
    Mantext1989
    Oct 30, 2021
    36
    似乎是没办法播放 mkv 文件
    machengim
    machengim
    OP
    Oct 30, 2021
    37
    @Mantext1989 目前不能适用多个文件夹。mkv 要看浏览器的支持情况,chrome 支持一部分编码的 mkv ,但也不能保证。火狐和 safari 应该不行。
    machengim
    machengim
    OP
    Oct 30, 2021
    38
    @Mantext1989 忘了说了,浏览器里不能打开的视频文件可以复制它的分享链接用第三方播放器打开,比如 vlc 或者 mpv ,大多数视频应该没问题。
    guanhui07
    guanhui07
    Oct 31, 2021 via iPhone
    39
    不错
    root01
    root01
    Nov 1, 2021
    40
    @root01 如果可以的话 ,像 Cute HTTP File Server 也挺好的,毕竟如果再 cmd 执行的话就不能开机启动方便
    root01
    root01
    Nov 1, 2021
    41
    @machengim 如果可以的话 ,像 Cute HTTP File Server 也挺好的,毕竟如果再 cmd 执行的话就不能开机启动方便
    确实得到 Error: Cannot retrieve local ip
    machengim
    machengim
    OP
    Nov 1, 2021 via Android
    42
    @root01 方便说一下软件版本和你的局域网 ip 吗? 0.1.2 版应该覆盖了主要的局域网 ip 了
    root01
    root01
    Nov 1, 2021
    43
    @machengim 运行不了 也找不到相关版本信息,但是这是 2021.10.27 下载的
    root01
    root01
    Nov 1, 2021
    44
    @machengim oasis_v0.1.1_windows_x86_64 找到压缩包了
    machengim
    machengim
    OP
    Nov 1, 2021 via Android
    45
    @root01 麻烦尝试一下 0.1.2 版,这个问题应该修复了。
    root01
    root01
    Nov 1, 2021
    46
    @machengim 尝试了,不能没有访客模式很尴尬
    kaesi0
    kaesi0
    Nov 2, 2021
    47
    unraid 苦没有强大的文件管理器久已(玩 unraid 的共同需求),少侠能不能发挥下,整一个 docker 版的超强线上文件管理器,像群晖的 filestation 一样
    kaesi0
    kaesi0
    Nov 2, 2021
    48
    如果能支持显卡硬解就牛 啤了
    Marathonk
    Marathonk
    Nov 2, 2021
    49
    ./oasis: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./oasis)

    这个问题怎么解呀
    machengim
    machengim
    OP
    Nov 2, 2021
    50
    @Marathonk 可能是因为 release 编译环境的 GLIBC 版本比较高。建议下载源码手动编译一下。
    kun775
    kun775
    Nov 4, 2021
    51
    树莓派 4 编译了好久,一直 cargo build --release ,这个阶段要多久呀
    Chipmunker
    Chipmunker
    Nov 4, 2021
    52
    近期准备在组内局域网搭建一个文件服务器来共享常用的程序安装包,昨天还在找有什么方便搭建的程序,今天就看到这个项目了,真是太巧了。

    首先感谢楼主开源这么妙的项目。另外有一个问题,如何设置可以实现不需要账号的匿名访问呢?
    machengim
    machengim
    OP
    Nov 4, 2021
    53
    @kun775 这一步确实有点慢,在我的 nuc8 上感觉要 10 分钟左右。
    machengim
    machengim
    OP
    Nov 4, 2021
    54
    @Chipmunker 谢谢支持。访客功能目前还没做,正在考虑实现哪些功能。应该会在上传功能做完后就开始。
    kun775
    kun775
    Nov 4, 2021
    55
    视频(浏览器支持)是什么意思,我用谷歌浏览器能播放 MP4 文件,就是没画面
    u2gign
    u2gign
    Nov 4, 2021
    56
    有 docker 版吗
    ashuai
    ashuai
    Nov 4, 2021
    57
    建议参照 FTP :D

    支持匿名账户
    支持虚拟目录
    每个目录都可以设置自己的权限 List/View/Download/Upload/Append
    目录权限默认继承上一级
    用户可以重新定义目录权限
    用户组
    用户组可以定义目录权限

    所以权限的优先级是:目录 DIR <- 用户组 UserGroup <- 用户 User
    machengim
    machengim
    OP
    Nov 4, 2021 via Android
    58
    @kun775 视频播放是浏览器实现的。可能有些文件的编码格式不被 Chrome 支持
    machengim
    machengim
    OP
    Nov 4, 2021 via Android
    59
    @u2gign 暂时没有
    Marathonk
    Marathonk
    Nov 7, 2021
    60
    老哥,突然发现没法在 web 上删除文件哈?只能在部署的机器上删除吗
    machengim
    machengim
    OP
    Nov 7, 2021 via Android
    61
    @Marathonk 是的,开始计划的是只做读功能。后面会加上。
    Marathonk
    Marathonk
    Nov 8, 2021
    62
    @machengim 赞!!
    kknd22
    kknd22
    Nov 8, 2021
    63
    坐等以后吊打可道云
    piloots
    piloots
    Dec 14, 2021
    64
    一级棒,提个“问题”,虚拟磁盘无法找到。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1524 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 00:38 · PVG 08:38 · LAX 16:38 · JFK 19:38
    ♥ Do have faith in what you're doing.