轻量级开源网盘系统分享

前言


在我的生活中经常需要使用到网盘,大型公司的网盘很稳定,而且也很好用,但是它会限速,虽然开会员能解决,主要问题还是它总是会扫描你的文件,看你是否存储非法内容,还有讨厌的广告,这一点非常讨厌。
我有时候确实需要存储一点灰色内容。
我本身也是程序员所以在考虑是否直接找个开源的网盘部署即可,这些开源网盘有一过很长时间的验证,稳定性也是相当不错的。
然而我要的不仅仅是一个网盘功能,因为我已成家,生活中有很多美好的日记需要记录,当然微信朋友圈也是一样可以记录,可还是同样的问题,大公司依然会扫描你记录的文件,同时生活中总有一些记录是只希望我的家庭人员能看到就可以了。
备忘录的功能,我也在工作或生活中常常用到,虽然很多手机都自带这些云服务,但是一个手机总是会变来变去,一个家庭中也许会出现用苹果、华为、小米等不同品牌的手机,它们之间也是不会共享,当然了有考虑过第三方的云服务,但是又双回到这个老问题,大公司总是会扫描你记录的内容。
基于以上情况,所以我考虑自己动手实现一套满足我家庭的系统,我将它命名为家庭网盘,它主要的服务范围是以家庭为单位,它要兼容不同的设备,不限速,无广告,保证数据不丢失。

家庭网盘介绍点击跳转到系统演示视频


完全开源且免费,以家庭为服务单位的系统,功能有网盘、日记、备忘录,使用用户空间隔离数据,多个用户可以加入共同的空间,共享空间内的数据,空间权限分为只读和读写两种,媒体资源支持在线播放,资源链接分享,数据备份,访问网盘服务时自动在局域网与公网之间切换,家庭网盘的功能仅限于这些,后面有版本更新应该也是围绕(功能优化、bug修复、存储方式扩展、对不同设备的支持)并不会出现这些功能以外的内容。

架构介绍


本系统采用前后端分离方式:

  • 前端:vue (v3.2.45)+ vant-ui(v4.0.3)+ vite(v4.0.0)点击跳转前端架构详细介绍

  • 后端:微服务设计 + dubbo(v3.1.3) + java(v17)+ springboot(v2.7.6)+ maven(v3.6.1)点击跳转后端架构详细介绍

  • 数据库:mysql(v8.0.31)点击跳转表模型DDL文件

系统部署方案场景推荐


  • 注意:这并不是直接告诉你如何部署,这只是以作者的经验向你介绍哪种场景适合怎样的部署方案,想知道部署时需要修改哪些配置,还是需要先仔细阅读前后端架构详细介绍,再来执行部署。

  1. 局域网访问:

如果你的家庭网盘服务永远只需要在局域网内被访问到,那么这种方式的部署是最简单的,将服务全部都部署在本地即可。
劣势:如果你远离了你家的路由器,那么你就无法访问家庭网盘。
优势:因为是在局域网内访问,安全性最高,同时访问速度最快。
  1. 公有云服务访问:

如果你希望你的设备通过互联网的方式在任何地方都可以访问到家庭网盘,那么你可以将家庭网盘部署到公有云服务,这需要向提供云服务器的厂家租赁云服务器,通常提供公有云服务器的有阿里云、腾讯云、华为云等,这些云服务都可以拥有公网ip,然后购买一个域名将域名解析到这个公网ip上。
劣势:向云服务厂家租赁云服务器,一般成本比较高,存储扩展成本也是直线上升,因为云服务器不同的配置价格是不一样的,默认送的硬盘都是40-50GB这根本存储不了多少东西,而且cpu的核心以及内存通常都非常低,想升级就要加不少钱,到期续费更是天价,还有一个关键问题,在使用云服务器的时候,这些厂家也会扫描你的硬盘是否存储了非法的东西,这对隐私是极为不利的,如果云服务器性能不足还需要额外租赁云数据库服务,不能使用家庭网盘提供的自动切换到局域网提速功能。
优势:可以从公网访问到家庭网盘,没有地区限制,不需要自己维护服务器,24小时服务,没有电费,如果不考虑成本和厂家扫描文件的问题,这个方式是非常不错的选择
  1. 利用公有云服务穿透到局域网访问(推荐)

如果家里刚好有一台闲置的电脑,最好是台式机,如果有钱当然也可以直接买一台服务器类型的电脑,总之家里需要准备一台电脑,性能够强,硬盘够大,家里的电脑升级配件成本也比较低,二手配件一大把,然后我们将数据库,后端服务都部署在这台机器上,为了防止ip变化,需要在路由器中固定死这台机器的ip。
租赁一台云服务器,性能不需要很好,基础配置即可,带宽可以适当增大一些,一般5MB差不多够用了,资金足一点上10MB也行,可能很奇怪为什么还需要租赁云服务器,这是因为我们家庭的网络没有公网ip,需要它来当做一个桥梁让它的公网ip穿透到家里的局域网内,这台服务器就算过期了需要迁移也是很轻松的,因为它只部署了一个搭桥的服务、和一个前端服务,因为众所周知服务迁移的时候麻烦点总是在后端与数据库,由于它不需要使用它的计算性能和存储性能,所以在租赁时仅仅只需要升级它的带宽,这样能降低非常多的成本,当然了如果你能在自己家里的宽带搞一个公网ip,那就省去了租赁云服务器的成本了,少了跳板机这个节点,从公网访问的速度也会更快一点,不过家庭宽带申请公网ip比较难。
还有一种思路,一般我们使用这个公网服务器的频率不是很高,像这种穿透服务端大家可以共用同一个,你可以叫很多人一起使用,均摊成本。
在部署跳板穿透服务时,可以选择开源项目frp 点击跳转到frp官网,只需要将frp服务端部署在公网机器上,客户端部署在局域网机器上,做一下端口映射,即可通过公网服务器的公网ip访问到部署在局域网内的家庭网盘服务。
劣势:因为有一层跳板穿透的原因,肯定比直接通过公网访问进来的方式网速对比要慢一点,不过也不会慢太多,需要自己维护服务的稳定,不能提供24小时服务(理论上家里不停电同时你不关机也能提供24小时服务),要交局域网内机器运行的电费。
优势:成本相对低一点,机器扩展内存或硬盘或更换更强计算性能的cpu成本没有公有云服务器那么高,访问终端在局域网环境内可以自动切换成局域网方式加速访问,存储的文件在自己的电脑硬盘中,隐私性高,没有人偷窥你存储的文件,作为跳板机的云服务器即时过期了也不会影响家庭网盘的服务与数据,只是无法通过公网访问而已,后面再次租赁了公网云服务器,只需要架桥穿透即可。

你可能感兴趣的:(java,java,vue,个人开发)