V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
ddup
V2EX  ›  奇思妙想

基于 Git 服务做一个网盘客户端 市面上还有其它的吗?

  •  
  •   ddup · 2018-11-06 08:37:15 +08:00 · 5554 次点击
    这是一个创建于 2213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正考虑怎么最方便的在自己开发的本地数据挖掘和全文搜索软件上,加入云协作,反复思量了下,

    感觉可以用 git,把自己总结的此方案优缺点发出来,这是个可以实践的思路大家可以试试,如有不当之处大家也可以斧正。

    需求比较简单

    电脑上的文件可以同步到云端 别人可以在浏览器里查看&下载,也能在同步到硬盘里更好不过了 别人在浏览量里搜索你的分享的文件

    这么做的原因

    从头开发一个这样的东西周期太长,如果可以基于 git 包装一下,实现此功能,那不是事半功倍吗。

    云服务器上自建一个 git server,可以用 gitlab 或者 gitea 等,对外不可直接访问,需要经过外部程序权限检查等,用户注册时,自动给它创建一个 git 账号,然后每分享一个文件夹出去,就创建一个 repo,使用权限控制住这个 repo 只有特定的人能够访问。

    基于 Git 构建网盘系统的好处

    • 可以保留所有版本历史
    • 久经考验,稳定可靠
    • 跨平台
    • 可以多人编辑
    • 良好的多人编辑冲突解决机制,这是目前市面上别的网盘比较缺失的功能?
    • 可以方便的分享给别人
    • 对于不放心将数据托管出去的,你甚至可以自建一个 git server ?

    缺点

    • 默认情况下仓库文件较大,因为本地会存储一份副本以及历史记录,不过好在微软的 GVFS 方案解决了这个问题。
    • 现有的 Git 客户端工具都是给工程师用的,普通用户使用有一定难度,需要开发简易化的客户端版本
    • 网盘是自动提交的,用 git 做网盘,需要考虑一个自动提交机制。
    • 你想到欢迎补充。。

    我看到有一个现成的

    https://github.com/amoblin/gitman

    不过只有 MacOS 版,各位还有在其它地方看到基于 Git 做网盘的工具吗?

    23 条回复    2018-11-29 16:02:07 +08:00
    lhx2008
        1
    lhx2008  
       2018-11-06 08:44:06 +08:00 via Android
    其实 svn 也行,乌龟客户端对于人类非常友好。
    ddup
        2
    ddup  
    OP
       2018-11-06 08:47:52 +08:00
    @lhx2008 #1 嘛,乌龟端对非开发人员,我比较没有信心,操作有点复杂了,把 git 客户端搞得跟网盘客户端差不多,普通用户就无门槛了。
    lhx2008
        3
    lhx2008  
       2018-11-06 08:56:20 +08:00 via Android
    @ddup 是 git 复杂,svn 乌龟就几个操作就行了:同步,上传,添加待上传文件,整个文件夹拉取。这个 10 分钟肯定学会了。真要完全傻瓜化,TIM 网盘啥的也凑合啊。
    ddup
        4
    ddup  
    OP
       2018-11-06 08:59:08 +08:00
    @lhx2008 #3 哦,soga,谢谢!怪不得我公司用过 SVN 的同事让他换成 git 他有点那个。
    oott123
        5
    oott123  
       2018-11-06 09:23:28 +08:00 via Android   ❤️ 1
    git 管大文件太不友好了,得 git-lfs。

    其次,git 的多人协作冲突解决仅适用于纯文本。二进制你搞一个试试?
    StevenTong
        6
    StevenTong  
       2018-11-06 09:46:07 +08:00   ❤️ 1
    基于 git 的云笔记会比较好用
    hicdn
        7
    hicdn  
       2018-11-06 09:46:17 +08:00
    Dropbox
    maichael
        8
    maichael  
       2018-11-06 09:53:59 +08:00   ❤️ 3
    网盘最常见的文件类型:二进制文件
    git 最不擅长处理的文件类型:二进制文件
    yumenawei
        9
    yumenawei  
       2018-11-06 10:01:39 +08:00
    同楼上
    良好的多人编辑冲突解决机制,这是目前市面上别的网盘比较缺失的功能
    如果待编辑的是 .docx 格式的怎么办
    WayneLau
        10
    WayneLau  
       2018-11-06 10:06:16 +08:00   ❤️ 1
    目前我自己的一些配置文件或脚本就是用的 gitee 的私有仓库来同步(公司电脑、家里台式和笔记本),问题就是目前没有进一步封装,需要手动同步,但是用起来还是很爽
    NotNil1
        11
    NotNil1  
       2018-11-06 10:06:35 +08:00
    @StevenTong 我也想要基于 git 的云笔记,有 做好的吗?
    ThirdFlame
        12
    ThirdFlame  
       2018-11-06 10:14:46 +08:00
    @ljtletters
    @StevenTong git+vnote 爽歪歪
    Markdown
        13
    Markdown  
       2018-11-06 10:38:26 +08:00
    确定用 Git 存大文件没有问题?
    Lpl
        14
    Lpl  
       2018-11-06 11:25:04 +08:00   ❤️ 1
    NotNil1
        15
    NotNil1  
       2018-11-06 11:44:04 +08:00
    @ThirdFlame 这个 git 要自己集成啊?
    est
        16
    est  
       2018-11-06 11:55:54 +08:00
    你怕是对 git 有什么误解。。
    encro
        17
    encro  
       2018-11-06 12:39:44 +08:00
    nextcloud
    ThirdFlame
        18
    ThirdFlame  
       2018-11-06 14:10:30 +08:00
    @ljtletters
    git add
    git commit
    git push 写个脚本放到定时任务里面,一个小时自动执行一次不就行了。
    valorachen
        19
    valorachen  
       2018-11-06 16:33:53 +08:00 via Android
    @ljtletters gitbook
    ankelo
        20
    ankelo  
       2018-11-06 23:41:26 +08:00   ❤️ 1
    @StevenTong 你这想法好,比网盘更实际,直接可以在 github 实现,而且笔记不用暂用太多空间,用 github 免费服务,感觉也不会对不住他们,毕竟只是文件头跟文本内容。网盘就不一样了,如果放图片 github 估计亏大了,会被中国搞垮的,哈哈。
    StevenTong
        21
    StevenTong  
       2018-11-07 22:02:12 +08:00
    我比较想要的是那种 跟有道云笔记客户端类似的体验 但是可以 git 私有托管的 要是有这样的解决方案就好了
    somethin
        22
    somethin  
       2018-11-15 09:23:01 +08:00   ❤️ 1
    @StevenTong https://www.sparkleshare.org/ 了解下, git as a sync tool
    x9sec
        23
    x9sec  
       2018-11-29 16:02:07 +08:00
    这个属于滥用吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:31 · PVG 04:31 · LAX 12:31 · JFK 15:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.