把 Cloudreve 网盘用 Go 重构了下,支持六种主流云存储 / WebDAV / 多用户 / Aria2 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
AaronLiu00
V2EX    分享创造

把 Cloudreve 网盘用 Go 重构了下,支持六种主流云存储 / WebDAV / 多用户 / Aria2

  •  5
     
  •   AaronLiu00
    PRO
    HFO4 2020-03-27 16:38:02 +08:00 63769 次点击
    这是一个创建于 2027 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚好这段时间学校没开课,空闲时间较多,用了大概六个月的时间,把 Cloudreve 用 Go 语言 / Gin 重构了一遍,除了修复 V2 版本被诟病很多的 Bug 外,还增加了很多令人兴奋的新特性。

    Cloudreve 是什么?

    Cloudreve 是个公有网盘程序,你可以用它快速搭建起自己的网盘服务,公有云 /私有云都可。Cloudreve 底层支持 本机存储、从机存储、阿里云 OSS 、又拍云、腾讯云 COS 、七牛云存储、OneDrive (国际版 /世纪互联版),每种存储方式的上传下载都是客户端直传

    特性列表

    • 支持本机、从机、七牛、阿里云 OSS 、腾讯云 COS 、又拍云、OneDrive (包括世纪互联版) 作为存储端
    • 上传 /下载 支持客户端直传,支持下载限速
    • 可对接 Aria2 离线下载
    • 在线 压缩 /解压缩、多文件打包下载
    • 覆盖全部存储策略的 WebDAV 协议支持
    • 拖拽上传、目录上传、流式上传处理
    • 文件拖拽管理
    • 多用户、用户组
    • 创建文件、目录的分享链接,可设定自动过期
    • 视频、图像、音频、文本、Office 文档在线预览
    • 自定义配色、黑暗模式、PWA 应用、全站单页应用
    • All-In-One 打包,开箱即用

    截图与演示

    演示站点:https://demo.cloudreve.org Homepage 目录分享 离线下载 后台 支持的存储策略

    相关连接

    GitHub Repo: https://github.com/cloudreve/Cloudreve

    TG 群组:https://t.me/cloudreve_official

    64 条回复    2021-03-17 10:11:49 +08:00
    natforum
        1
    natforum  
       2020-03-27 16:51:58 +08:00
    沙发,牛逼,之前是 php 的,现在直接重构了
    Reficul
        2
    Reficul  
       2020-03-27 17:32:28 +08:00
    666
    xdeng
        3
    xdeng  
       2020-03-27 18:29:47 +08:00
    试了挺好 要是有一个不含 支付宝 微信 积分 增值服务 商业服务的版本啊
    williamchen
        4
    williamchen  
       2020-03-27 19:09:30 +08:00
    很赞
    neteroster
        5
    neteroster  
       2020-03-27 19:21:54 +08:00 via Android
    UI 很漂亮!
    4GNK
        6
    4GNK  
       2020-03-27 19:57:13 +08:00
    太棒了!!!!
    WEBUG
        7
    WEBUG  
       2020-03-27 20:04:03 +08:00 via Android
    存储方式可以选择多个吗,比如两个世纪互联
    imnpc
        8
    imnpc  
       2020-03-27 20:06:17 +08:00
    是否支持 API 上传呢...webdav 好像只支持本机策略
    melonzzz
        9
    melonzzz  
       2020-03-27 20:07:01 +08:00 via Android
    留下了没有技术的泪水
    AaronLiu00
        10
    AaronLiu00  
    OP
    PRO
       2020-03-27 20:08:05 +08:00 via Android
    @imnpc WebDAV 是支持所有存储策略的
    imnpc
        11
    imnpc  
       2020-03-27 20:12:57 +08:00
    @AaronLiu00 #10 我是想利用程序的 API 直接 POST 提交文件过去 然后自动按照策略上传到不同的空间里...
    huangtao728
        12
    huangtao728  
       2020-03-27 20:17:04 +08:00
    请问现有 V2 版本可以升级吗
    AaronLiu00
        13
    AaronLiu00  
    OP
    PRO
       2020-03-27 20:24:54 +08:00 via Android
    @huangtao728 正式版发布后可以升级
    @imnpc 可以用 WebDAV 的上传接口,加上需要预先切换存储策略
    SquirrelMAN
        14
    SquirrelMAN  
       2020-03-27 21:31:18 +08:00   1
    Jevan
        15
    Jevan  
       2020-03-27 21:46:34 +08:00
    nice,感谢楼主。正好缺一个图床和私人网盘的程序。
    Takuron
        16
    Takuron  
       2020-03-27 21:50:20 +08:00 via Android
    好东西,赞
    有无 docker 版本? docker 用的不熟只能吃现成的
    AaronLiu00
        17
    AaronLiu00  
    OP
    PRO
       2020-03-27 21:56:59 +08:00 via Android   2
    Techzero
        18
    Techzero  
       2020-03-27 22:03:44 +08:00 via Android
    支持文件系统监控吗?原来用的 nextcloud,映射的目录每次有文件改动都要手动扫描
    AaronLiu00
        19
    AaronLiu00  
    OP
    PRO
       2020-03-27 22:04:27 +08:00 via Android
    @Techzero 不支持的
    Techzero
        20
    Techzero  
       2020-03-27 22:05:56 +08:00 via Android
    @AaronLiu00 那请问有扫描命令吗?看了一下 UI,准备换过来试试了,感谢
    AaronLiu00
        21
    AaronLiu00  
    OP
    PRO
       2020-03-27 22:16:23 +08:00 via Android
    @Techzero 目前版本还没有,不过已经在计划中了
    keepeye
        22
    keepeye  
       2020-03-27 22:40:12 +08:00
    第一张图不是在浏览器中吗?
    AaronLiu00
        23
    AaronLiu00  
    OP
    PRO
       2020-03-27 22:42:31 +08:00 via Android
    @keepeye 是 Chrome 桌面端的 PWA 模式
    ArJun
        24
    ArJun  
       2020-03-27 22:49:56 +08:00
    go 真牛皮,看了下代码量也不是很大
    okjb
        25
    okjb  
       2020-03-28 00:52:19 +08:00 via Android
    惊了
    wpblank
        26
    wpblank  
       2020-03-28 02:00:07 +08:00 via iPhone
    好多网盘项目都长这个样子,想问下这是一种设计风格吗?
    noqwerty
        27
    noqwerty  
       2020-03-28 05:28:55 +08:00 via Android
    @wpblank material design 吧
    sky96111
        28
    sky96111  
       2020-03-28 09:52:28 +08:00 via Android
    太 nb 了!
    试了一下,UI 很棒,准备换掉停止维护的 filebrowser 了。不过好像没法查看管理非通过 cloudreve 上传的文件?
    star7th
        29
    star7th  
       2020-03-28 10:00:36 +08:00
    似乎只能选择一个存储策略。我希望以后可以考虑出一个加密备份功能。上传一份后,加密备份到其他存储空间去。这样避免丢数据的风险。
    AaronLiu00
        30
    AaronLiu00  
    OP
    PRO
       2020-03-28 10:00:40 +08:00 via Android
    @sky96111 是的,文件机构流是单向的。后面会增加扫描导入功能
    zhaoxiting1997
        31
    zhaoxiting1997  
       2020-03-28 10:24:18 +08:00
    能支持 LDAP 或者 Oauth 登录吗
    wpblank
        32
    wpblank  
       2020-03-28 12:30:54 +08:00
    试了下,还在研究,看文档说 OneDrive 不支持直链?我之前用 oneindex 是可以提取直链的
    AaronLiu00
        33
    AaronLiu00  
    OP
    PRO
       2020-03-28 12:37:12 +08:00 via Android
    @wpblank OneDrive API 返回的直链有效期只有 1h
    ety001
        34
    ety001  
       2020-03-28 13:01:18 +08:00
    没有 docker 封装吗?
    wpblank
        35
    wpblank  
       2020-03-28 13:08:13 +08:00
    @AaronLiu00 oneindex 是返回 我的域名+路径+文件 这种直链,然后真实下载地址在缓存里,可能是每次请求这个直链时再请求下真实的下载地址吧
    xav1er4s
        36
    xav1er4s  
       2020-03-28 14:45:35 +08:00
    同求一个 docker 镜像
    sky96111
        37
    sky96111  
       2020-03-28 15:31:16 +08:00 via Android
    @sky96111 扫描导入,能直接沿用目录结构吗?目前发现文件夹上传,不同文件夹的文件全部都是在根目录中的,看来就没办法当成一个文件管理器用了
    liyaojian
        38
    liyaojian  
       2020-03-28 16:06:05 +08:00   2
    Showfom
        39
    Showfom  
    PRO
       2020-03-28 16:08:55 +08:00 via iPhone
    继续等支持 s3
    monkeydev
        40
    monkeydev  
       2020-03-28 16:30:36 +08:00
    @AaronLiu00
    对部署主机配置要求高吗
    AaronLiu00
        41
    AaronLiu00  
    OP
    PRO
       2020-03-28 16:37:23 +08:00 via Android
    @monkeydev 不高的,当然还是要看用户量
    @Showfom V3 版本暂时去除了 s3 支持,不过后续版本会补回来
    bigbigeggs
        42
    bigbigeggs  
       2020-03-28 16:45:02 +08:00
    妈呀,现在学生都这么强了么。我才刚毕业一年不到,还菜的一批
    itechify
        43
    itechify  
    PRO
       2020-03-28 17:02:55 +08:00 via Android
    流弊啊!
    Showfom
        44
    Showfom  
    PRO
       2020-03-28 17:14:50 +08:00 via iPhone
    @AaronLiu00 阿里云 oss 的 api 不是兼容 s3 的么
    AaronLiu00
        45
    AaronLiu00  
    OP
    PRO
       2020-03-28 17:30:49 +08:00 via Android
    @Showfom 阿里云 OSS 额外多了异步回调,s3 要用别的方法实现回调
    outtime
        46
    outtime  
       2020-03-28 19:25:40 +08:00 via iPhone
    牛逼!
    stille
        47
    stille  
       2020-03-28 19:31:17 +08:00 via iPhone
    期待 cac 模式的 docker-compose 版……
    jh163888
        48
    jh163888  
       2020-03-28 19:41:21 +08:00 via Android
    @stille 哈哈,拐子你来了
    stille
        49
    stille  
       2020-03-28 19:42:24 +08:00 via iPhone
    @jh163888 #48 来了、老弟!
    Showfom
        50
    Showfom  
    PRO
       2020-03-28 19:51:36 +08:00
    @AaronLiu00 嗯,等你的 s3 支持了 嘿嘿
    loading
        51
    loading  
       2020-03-28 20:16:02 +08:00 via Android
    不能直接使用现有目录,迁移难度有点高。
    molezznet
        52
    molezznet  
       2020-03-28 21:58:24 +08:00
    后台删除的文件,主页上如何清理掉?
    mylighting
        53
    mylighting  
       2020-03-29 13:37:11 +08:00
    @AaronLiu00
    部署试了一下,演示站以及自己部署的,都无法使用离线下载功能,打开后不显示任何操作按钮,Aria2 配置完成,并且测试链接成功,这是什么原因呢? https://imgchr.com/i/GViyR0 https://imgchr.com/i/GVizFA
    AaronLiu00
        54
    AaronLiu00  
    OP
    PRO
       2020-03-29 14:05:23 +08:00 via Android
    @mylighting 离线下载任务需要在文件列表页创建
    mylighting
        55
    mylighting  
       2020-03-29 14:16:13 +08:00
    @AaronLiu00 原来是这样,谢谢!能否提个小建议,没有文件时,默认显示的文本由 [拖拽文件至此或点击左侧“上传文件”按钮添加文件] 改成 [拖拽文件至此或点击「右下角」“上传文件”按钮添加文件]
    AaronLiu00
        56
    AaronLiu00  
    OP
    PRO
       2020-03-29 14:57:40 +08:00 via Android
    @mylighting 这个文字描述确实有问题,后面会修复
    daimaosix
        57
    daimaosix  
       2020-03-30 02:08:13 +08:00 via Android
    买了好像三个捐赠版了,一直在用,还是不错的
    DoctorCat
        58
    DoctorCat  
       2020-03-30 02:13:08 +08:00
    厉害
    huahuacui
        59
    huahuacui  
       2020-03-30 09:31:05 +08:00
    打不开啊
    xavierniu
        60
    xavierniu  
       2020-03-31 11:28:13 +08:00
    @Takuron #16
    @ety001 #34
    @xav1er4s #36
    @liyaojian #38
    @stille #47
    @AaronLiu00 #56

    Hi, 目前已经更新 CAC 模式的 docker compose 的部署方式,github: https://github.com/xavier-niu/cloudreve-docker

    欢迎尝试
    ntgeralt
        61
    ntgeralt  
       2020-04-27 12:46:59 +08:00
    我上传了个 10MB MP4,好像不能在线播阿
    chins
        62
    chins  
       2020-08-13 11:51:01 +08:00 via Android
    成功了的,来给楼主抱一个喜报 另外问一下可以增加 head 的自定义代码吗?放谷歌联盟
    chins
        63
    chins  
       2020-08-13 11:51:41 +08:00 via Android
    qinsi
        64
    qinsi  
       2021-03-17 10:11:49 +08:00
    go 里面最优秀的一个私有云项目了吧?之前用的 filebrowser
    /div> 关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     904 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 21:22 PVG 05:22 LAX 14:22 JFK 17:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86