V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
lgs821
V2EX  ›  Go 编程语言

我撸了一个快速搭建私人网盘的轮子, ifilespace 文件管理

  •  3
     
  •   lgs821 · 2021-09-07 14:33:30 +08:00 · 9563 次点击
    这是一个创建于 1181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    介绍

    由于工作和生活中有文件存储、管理和分享的需求,而国内大多数网盘都限速严重,限制太多,所以考虑到自己搭建文件管理系统,找了市面上能找到的几个网盘系统,如 NextCloud 、Cloudreve 、EyeblueTank 、zfile 等系统,虽然他们都已经做的基本完善,并且功能也都挺丰富了,但使用起来总感觉不太适合自己,所以造了这个轮子,并提供手机客户端和桌面客户端的支持。

    iFileSpace 是一个在线个人文件管理工具,在线网盘程序,可快速一键搭建私人云盘,支持本地存储和对象存储(目前支持阿里云 oss,华为云 obs,OneDrive ), 如部署在公网服务器,可替代百度网盘等在线网盘,自主搭建,数据完全自主管理!也可部署在家庭软路由、nas 等个人存储设备中,作为局域网文件管理工具使用。支持多用户、多存储空间、webdav 、相册备份及后台权限管理。

    系统设计初衷就是在家中软路由或者 nas 上部署使用(通过内网穿透或者 ipv6 可实现公网访问),为方便文件的管理及备份,本地文件系统就采用了明文文件夹结构的文件存储,没有使用文件加密及分块存储。另外,系统也增加了对象存储的支持,并且上传及下载文件都不需要服务器的带宽及存储容量限制。

    功能

    支持第三方存储(目前支持阿里云 oss,华为云 obs,OneDrive )。
    第三方存储不受服务器带宽限制,客户端直传。
    支持 WebDav 。
    支持相册备份。
    文件及文件夹管理、分享。
    支持直链分享、密码分享、群组分享及用户间分享。
    支持视频、图像、音频、文本、Office 文档、PDF 在线预览。
    支持多用户,多存储空间,多存储策略。
    提供 IOS,Android 客户端。
    提供 windows,macos 桌面客户端,管理分享文件更方便。
    支持定时文件扫描,自动更新用户文件夹下文件、目录。
    单文件打包,部署更简单。
    提供 Docker 版。
    Web 版支持自定义 Logo 及首页。
    

    技术栈

    服务端:Golang + Vue3 + AntDesign Vue
    手机端:Flutter
    桌面端:Electron + Vue3
    

    系统打包后只有一个二进制文件,并提供 docker 版本,方便快速启动,部署门槛极低。

    系统已迭代了一些版本,基本功能已相对稳定,后续根据情况会考虑增加桌面端的图床支持以及离线下载等功能。

    欢迎大佬们指点。

    官方网址: https://ifile.space

    演示地址: https://demo.ifile.space 账号密码:demo

    77 条回复    2021-10-13 09:11:18 +08:00
    lizhenda
        1
    lizhenda  
       2021-09-07 14:47:58 +08:00
    厉害了呀,一个人做的吗?
    biubiub
        2
    biubiub  
       2021-09-07 14:49:02 +08:00
    厉害,各种客户端都有
    lgs821
        3
    lgs821  
    OP
       2021-09-07 14:49:43 +08:00
    @lizhenda 是的啊,掉了二斤头发
    enki0423
        4
    enki0423  
       2021-09-07 14:55:18 +08:00 via iPhone
    开源吗
    gaodq
        5
    gaodq  
       2021-09-07 15:05:04 +08:00
    支持一下,好东西啊!
    lgs821
        6
    lgs821  
    OP
       2021-09-07 15:13:32 +08:00
    @enki0423 暂时还没打算开源。
    lgs821
        7
    lgs821  
    OP
       2021-09-07 15:14:34 +08:00
    @biubiub 为了使用方便嘛
    lgs821
        8
    lgs821  
    OP
       2021-09-07 15:32:14 +08:00
    @gaodq 感谢支持,希望对你有帮助。
    madlifer
        9
    madlifer  
       2021-09-07 15:33:30 +08:00
    老哥喜欢这种工具型软件的开发吗? 我有个关于视频学习的 idea 可以讨论下 有兴趣的话可以加我 VX:bWFkbGlmZXIxMzM3
    myd
        10
    myd  
       2021-09-07 15:51:12 +08:00
    可惜了,不开源
    zhaojun1998
        11
    zhaojun1998  
       2021-09-07 16:24:05 +08:00
    支持
    moxuanyuan
        12
    moxuanyuan  
       2021-09-07 16:28:32 +08:00
    我看了,是不否 windows 版开启后,windows 自身可以通过 webdav 映射网盘?
    JamesR
        13
    JamesR  
       2021-09-07 16:29:11 +08:00
    个人目前在用开源的 kiftd,Java 写的,功能较少,缺点无密码分享功能,密码明文保存在 conf 文件里等。

    开源的我看了一圈,个人认为比较满意的是 Cloudreve,但没有实际部署,主要原因是文件物理存储上,尚不够完善,有待改进。功能上,楼主相比 Cloudreve 多了用户组和用户分享功能,支持。

    离线下载的话,一直是直接远程桌面上去操作的,WebUI 仅用来查看下载进度,暂未有满意软件,可道云(KodExplorer)或许不错,不过是商业收费的。
    lgs821
        14
    lgs821  
    OP
       2021-09-07 16:38:03 +08:00
    @moxuanyuan 暂时 webdav 只支持本地存储策略,windows 自身的 webdav 映射需要 https 支持,如果不考虑安全因素,只在局域网使用 webdav,可以修改注册表解决不支持 http 的问题。
    xdeng
        15
    xdeng  
       2021-09-07 16:52:59 +08:00
    有点像 Cloudreve
    zlu1123
        16
    zlu1123  
       2021-09-07 16:56:25 +08:00
    厉害呀~
    sarlanori
        17
    sarlanori  
       2021-09-07 17:00:01 +08:00
    没有适配移动端网页版?
    lgs821
        18
    lgs821  
    OP
       2021-09-07 17:03:50 +08:00
    @sarlanori 当时考虑直接做成 app,就没做适配移动网页。
    cryboy007
        19
    cryboy007  
       2021-09-07 17:10:43 +08:00
    厉害
    aitaii
        20
    aitaii  
       2021-09-07 17:16:00 +08:00
    厉害了老哥
    jpyl0423
        21
    jpyl0423  
       2021-09-07 17:25:07 +08:00
    取消分享后, 外链还能访问
    cnit
        22
    cnit  
       2021-09-07 17:28:01 +08:00
    有 anytxt 的功能就好了
    lgs821
        23
    lgs821  
    OP
       2021-09-07 17:37:52 +08:00
    @jpyl0423 我刚测试了,取消分享后链接失效,你那里可能有本地缓存
    zzl22100048
        24
    zzl22100048  
       2021-09-07 17:59:38 +08:00
    对象存储(目前支持阿里云 oss,华为云 obs,OneDrive )
    这里如果直接支持 S3 协议不就支持所有对象存储了么,另外 S3 的 sdk 支持分片直连,像 Cloudreve 说做不了大于 5G 的直连,其实是可以做的
    lgs821
        25
    lgs821  
    OP
       2021-09-07 18:07:30 +08:00
    @zzl22100048 由于之前没怎么了解 s3 的协议,所以根据单独厂商的 sdk 封装了,回头了解对比下看哪个效果更好些。感谢建议
    oneisall8955
        26
    oneisall8955  
       2021-09-07 19:45:11 +08:00
    牛啊牛啊,支持!
    lslvxy
        27
    lslvxy  
       2021-09-07 19:49:02 +08:00
    我也正在造这样的轮子,Java 版的,刚立项 ^_^
    hahaayaoyaoyao
        28
    hahaayaoyaoyao  
       2021-09-07 19:55:44 +08:00
    @lslvxy me too ,不过最进有事, 先放下了
    loading
        29
    loading  
       2021-09-07 19:59:19 +08:00   ❤️ 1
    没开源吗?怕留后门,先谢谢了。
    LuyeeTom
        30
    LuyeeTom  
       2021-09-07 20:47:34 +08:00
    demo 真不错呀老哥,里面还有 LSP 想看的东西哈哈哈
    zololiu
        31
    zololiu  
       2021-09-07 22:04:34 +08:00
    感谢大佬,希望可以支持多些缩略图预览。
    另外,建议把左上角那个 ifile space 的图标做的简洁一点(哪怕只是粗体文字都好)视觉上整体页面可能会更干净以及平衡一些。现在这个图标有点大,颜色块也有点大,导致视觉上喧宾夺主了。
    lgs821
        32
    lgs821  
    OP
       2021-09-07 22:17:04 +08:00
    @lslvxy
    @hahaayaoyaoyao 且造切珍惜,造轮子是真费时间。
    lgs821
        33
    lgs821  
    OP
       2021-09-07 22:19:38 +08:00
    @LuyeeTom 这还好不是全公开的,我也控制不了,只能看到清一下,还是相信 v 友的素质的。
    lgs821
        34
    lgs821  
    OP
       2021-09-07 22:21:06 +08:00
    @zololiu 嗯,图标我已经更改了,这个还没替换,这个图标也是可以自定义的,看官网介绍,可以自定义为你自己的。
    dusu
        35
    dusu  
       2021-09-08 01:53:09 +08:00 via iPhone
    最近正需要这东西,要是能上 s3 协议就更棒了
    xinru
        36
    xinru  
       2021-09-08 04:20:54 +08:00 via iPhone
    厉害了,先看看
    rj
        37
    rj  
       2021-09-08 08:37:24 +08:00
    牛🍺 支持
    xu2060
        38
    xu2060  
       2021-09-08 08:39:28 +08:00
    棒!先 mark 了
    adrianzhang
        39
    adrianzhang  
       2021-09-08 09:27:53 +08:00
    很好啊!分享给我的,这个功能是干什么的?
    37Y37
        40
    37Y37  
       2021-09-08 09:35:45 +08:00
    牛皮!
    whylist
        41
    whylist  
       2021-09-08 09:48:54 +08:00
    高级!
    lscexpress
        42
    lscexpress  
       2021-09-08 10:11:31 +08:00
    个人网盘最大的瓶颈应该是在带宽,如果就是局域网用的话随便拿一个盘当做存储也够了。还有 minio 挺好用的,试试?
    didididididi
        43
    didididididi  
       2021-09-08 10:14:15 +08:00
    测试了一下,牛皮,还挺好用
    shenfu1991
        44
    shenfu1991  
       2021-09-08 10:16:40 +08:00
    试了一下,界面挺好看,开源的话给满分
    JohnChang
        45
    JohnChang  
       2021-09-08 10:31:18 +08:00
    能实现自动云同步吗?
    kebamt
        46
    kebamt  
       2021-09-08 10:37:16 +08:00
    很不错,只是不开源,可惜了
    Lemeng
        47
    Lemeng  
       2021-09-08 11:04:29 +08:00
    路过支持绑定
    ykk
        48
    ykk  
       2021-09-08 11:23:20 +08:00
    很好 我用 EyeblueTank
    zwgf
        49
    zwgf  
       2021-09-08 11:34:10 +08:00
    老哥是郑州的吗
    lgs821
        50
    lgs821  
    OP
       2021-09-08 11:43:11 +08:00
    @dusu 下一步研究下 s3 协议。
    lgs821
        51
    lgs821  
    OP
       2021-09-08 11:43:56 +08:00
    @adrianzhang 是群组分享和用户分享给我的文件在这里查看,可转存和下载
    lgs821
        52
    lgs821  
    OP
       2021-09-08 11:45:38 +08:00
    @zwgf 是的
    flybluewolf
        53
    flybluewolf  
       2021-09-08 12:14:25 +08:00
    不开放源码的不敢用
    sarlanori
        54
    sarlanori  
       2021-09-08 12:42:01 +08:00
    能编译个 arm 版的不?
    lgs821
        55
    lgs821  
    OP
       2021-09-08 13:18:43 +08:00
    @sarlanori 下个版本支持 arm 。
    zzzmh
        56
    zzzmh  
       2021-09-08 13:51:27 +08:00
    牛!
    1543544726zy
        57
    1543544726zy  
       2021-09-08 14:26:17 +08:00
    提示危险!谷歌也开始作恶了。
    lervard358
        58
    lervard358  
       2021-09-08 14:58:21 +08:00
    开源不
    rap16
        59
    rap16  
       2021-09-08 18:01:25 +08:00
    牛啊!!🐂
    cylee
        60
    cylee  
       2021-09-08 18:30:22 +08:00
    有移动端同学吗?头条商业化招 Android iOS : // https://www.v2ex.com/t/798022/
    suyuyu
        61
    suyuyu  
       2021-09-08 18:39:45 +08:00
    可惜了,不开源
    saltbo
        62
    saltbo  
       2021-09-08 19:30:58 +08:00
    牛啊,这么多客户端

    借楼宣传下 zpan,需要开源的看这里,不过目前没有楼主客户端多

    https://github.com/saltbo/zpan

    @suyuyu
    @lervard358
    @flybluewolf
    @kebamt
    @loading
    @JamesR
    @myd
    @enki0423
    miniers
        63
    miniers  
       2021-09-09 09:24:33 +08:00
    @lgs821 同在郑州的给你点个大赞👍
    Zien
        64
    Zien  
       2021-09-09 09:59:41 +08:00 via iPhone
    关注
    qq1340691923
        65
    qq1340691923  
       2021-09-09 11:42:15 +08:00
    牛皮!
    nzbin
        66
    nzbin  
       2021-09-09 14:21:35 +08:00
    @lgs821 支持一下,另外推荐一个不错的图片查看插件 https://github.com/nzbin/photoviewer
    jingslunt
        67
    jingslunt  
       2021-09-09 15:57:45 +08:00
    借楼推广下 seafile 没有限制的 @我
    gesse
        68
    gesse  
       2021-09-09 21:37:29 +08:00
    @seafile 价格就离谱。
    gesse
        69
    gesse  
       2021-09-09 21:37:57 +08:00
    @jingslunt

    seafile 开源版功能少
    mailshuxin
        70
    mailshuxin  
       2021-09-10 02:04:04 +08:00 via iPhone
    为什么不用 nextcloud 呢
    jingslunt
        71
    jingslunt  
       2021-09-10 09:05:55 +08:00
    @gesse 当然是某种非开源版本
    hhs66317
        72
    hhs66317  
       2021-09-10 16:10:42 +08:00
    测试了下,windows 平台,拖动上传几十个文件,提示合并失败,上传失败,印象中报错信息“创建事务失败”?

    在设置页面,点击不同选项的时候也报错。

    界面看起来不错,就是 BUG 比较多
    lgs821
        73
    lgs821  
    OP
       2021-09-10 18:22:04 +08:00
    @hhs66317 - -0 刚更新的版本换了 sqlite 驱动的原因,已修复,有 bug 欢迎反馈。
    ragnaroks
        74
    ragnaroks  
       2021-09-13 22:50:14 +08:00
    没有“离线下载”功能,对于个人网盘来说,这个功能应该是比较实用的
    muhahaha
        75
    muhahaha  
       2021-10-12 17:54:50 +08:00
    刚刚 demo 试了一下,分享文件无法下载,提示获取不到文件
    lgs821
        76
    lgs821  
    OP
       2021-10-12 21:53:39 +08:00
    @muhahaha 感谢反馈,上版本调整手机端接口不小心改了一个字段,马上修复。
    kknd22
        77
    kknd22  
       2021-10-13 09:11:18 +08:00
    感觉这个不错
    之前用过可道云 kodexplorer,可集成 office pdf 可在线预览、可压缩预览、可打包下载、可在线编辑、文件直观化存储,但是后来他升级成 kodbox 之后,改成了像 seafile 一样的文件切片加密,遂放弃了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2616 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:10 · PVG 15:10 · LAX 23:10 · JFK 02:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.