目录

仓库已开源水獭云对象存储云平台客户端介绍

【仓库已开源】水獭云:对象存储云平台客户端介绍

水獭云:对象存储云平台客户端

一、介绍

基于 React18、Electron23+、Redux +Redux-Toolkit+RTK Query、Vite4、Ant-Design 、Axios开源的一套对象存储云平台客户端框架。

(仿tx云)

本项目基于优秀的开源后台管理平台 ,进行了大幅度的重构,删改并新增了大量的存储桶对象管理的特化功能。

2023-07-02 本仓库代码还未进行开源的特化,停留在比赛演示版本,但保证项目在依赖正确的情况下可以进行正常的使用

二 、相关链接

项目地址

GitHub:

相关技术文档

前端如何真正实现上传整个文件夹,而不是简单地展开成多文件?

个人主页

Github:

稀土掘金-Canals:

CSDN:

三、项目特色

  • 先进的技术栈:React18、Electron23+、Redux +Redux-Toolkit+RTK Query、Vite4、Ant-Design 、Axios
  • Web+Win多端支持:使用Electron23+和Electron-forge6+封装React18项目为桌面客户端,对Vite4构建的Web项目可以追加Electron构建为桌面客户端
  • 先进的构建工具:采用 Vite4 作为项目开发、打包工具,对Vite参数进行了调优,便于开发环境调试
  • 完善的状态管理:使用redux-toolkit重构了原有的纯Redux管理,将所有的存储部分规范化
  • 对 Axios和RTK Query 二次封装,增加了拦截器快速统一处理请求和响应
  • 灵活使用Context API:对层数较少的临时状态存储(如创建存储桶)灵活使用 Context API 简化逻辑
  • 开发生产环境分明:npm scripts定义了多种不同开发模式,并通过 cross-env 设置不同环境变量区分

四、使用步骤

  • Clone:
git clone https://github.com/Canals233/React-cloud-storage-platform-Otter.git
  • Install:
npm install
 
# 本项目使用的npm源为阿里源 http://registry.npmmirror.com/
  • Run:
#开启React的Web界面
vite
或
npm run dev

#开发环境的 Electron 命令需要先通过 vite 启动 Web #开发环境 electron 启动,electron 源为 web 的 URL
npm run start #生产环境 electron 启动,electron 源为根目录下的 dist 文件夹(vite 打包后)
npm run prod-start
  • Build:
# 生产环境 vite 打包 react
npm run build

# 产生 windows 桌面文件

npm run make

五、项目功能

总架构图

https://img-blog.csdnimg.cn/img_convert/f365cf9967bfd2e1898254b625990c57.png#averageHue=#fefdfb&clientId=uf230d3d3-e080-4&from=drop&id=ua33f6d2e&originHeight=562&originWidth=765&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=42948&status=done&style=none&taskId=ued240d01-7a2d-40a4-99c8-9d3f92f7d78&title=

  • 登录注册模块:通过可表单实现用户输入的实时性校验,输入和警告提示,实现注册登录数据的批处理统一化提交。可调用后端提供的验证码接口进行认证

    登录流程较为经典,输入的账号和密码无误即可

    注册流程为,通过邮箱发送验证码->点击注册,先发送验证码验证请求->验证通过后自动再发送写入数据库请求

  • 存储方面可分为存储桶部分和文件管理部分,总体上提供了一个 VFS

    • 存储桶部分可实现 创建,删除,清空存储桶;修改存储桶名称,标签,访问权限;根据名称搜索存储桶;存储桶信息表格展示,筛选,排序;存储桶数据与访问监控展示。总体是向用户提供的是类似 Windows 文件资源管理器的修改最高一级父文件夹的功能。
    • 文件存储方面可实现 :批量上传,删除,复制,下载文件;文件详细信息浏览;修改文件名称,访问权限;根据标签搜索文件,根据名称搜索文件;文件信息表格展示,筛选,排序;创建,删除文件夹;上传文件夹与其中的全部文件;要向用户提供的是类似 Windows 文件资源管理器的子文件或子文件夹操作。
  • 数据展示模块主要负责向用户提供统计数据,便于用户统计当前存储使用情况和访问量。同时,由于数据的时序性强,数据展示还可根据时间戳进行分类分区分片展示,实现时序数据的智能定制化获取与展示。数据展示主要分为简洁快速的数据概览和以图表为核心的详细使用统计。

    • 数据概览:数据概览部分提供的是能让用户快速浏览当前存储情况和访问轻快的简单总结,界面主打简洁明了,便于用户得到信息。主要展示存储用量,总流量,请求数量,存储桶数量,对象总数与日均存储用量。
    • 使用统计:使用统计部分是用多种多维可选图表,向用户提供高度个性化的数据展示,能根据不同需要展示出数据比例图,折线图等等多种图标数据格式。目的是让用户根据不同需求得到期望的数据展示样式。
  • 辅助功能:提供了全屏,色盲模式,黑暗模式等辅助功能。

业务逻辑的分析和技术文档将尽快更新

六、项目截图

登录表单

https://img-blog.csdnimg.cn/img_convert/97c80b0ac09eed7c40adcb99ee2303bf.png#averageHue=#fbfbfb&clientId=uf230d3d3-e080-4&from=drop&id=ud0f0b475&originHeight=411&originWidth=466&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=20438&status=done&style=none&taskId=u000d3066-c61b-47f6-ae40-98f61e6bfde&title=

注册表单与注册错误提示

https://img-blog.csdnimg.cn/img_convert/ebe56d71342df2326a71f67d9cb87527.jpeg#averageHue=#fbfafa&clientId=uf230d3d3-e080-4&from=drop&id=u4c8578a9&originHeight=567&originWidth=948&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=111122&status=done&style=none&taskId=u0cfcd6ba-9f73-474a-a043-56abc97d200&title=

存储桶列表页面

https://img-blog.csdnimg.cn/img_convert/a5481285f0d10495e865be364dd42b83.png#averageHue=#e1be82&clientId=uf230d3d3-e080-4&from=drop&id=u5822a3bb&originHeight=489&originWidth=1358&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=35295&status=done&style=none&taskId=ub8e9886b-c2c4-46cb-b85a-eef6535a0ec&title=

权限管理窗口

https://img-blog.csdnimg.cn/img_convert/0a8624c97e4d6c8bcdd0637dbcb5d798.png#averageHue=#fcfbfb&clientId=uf230d3d3-e080-4&from=drop&id=uc8312176&originHeight=667&originWidth=901&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=35020&status=done&style=none&taskId=u130a8471-d31f-423d-9297-e46b680a711&title=

创建存储桶

https://img-blog.csdnimg.cn/img_convert/30f43d9a87c617eac1b7fdb5aaff9590.png#averageHue=#fbfafa&clientId=uf230d3d3-e080-4&from=drop&height=399&id=u322e7e1e&originHeight=401&originWidth=521&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=21025&status=done&style=none&taskId=ue2d29057-2fce-483a-b54e-0197caa95fd&title=&width=518.9896240234375

https://img-blog.csdnimg.cn/img_convert/007f596416aeeb7d3eb2ccb58cd8e7ec.png#averageHue=#fcfcfc&clientId=uf230d3d3-e080-4&from=drop&id=ud48c092f&originHeight=371&originWidth=521&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=13817&status=done&style=none&taskId=u55e75a76-f12e-413c-848f-3abe4cdeb27&title=

排序并进行选择后的文件列表页面

https://img-blog.csdnimg.cn/img_convert/569167f9d20212b80d312e09ee0a52e8.png#averageHue=#fcfcfc&clientId=uf230d3d3-e080-4&from=drop&id=ud009e29a&originHeight=388&originWidth=1369&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=30402&status=done&style=none&taskId=u32695c32-1788-4083-976a-ac6772ca2fc&title=

任务队列

https://img-blog.csdnimg.cn/img_convert/902204fb47adab51c5f7f1e0e6cf1f96.png#averageHue=#fcfbfb&clientId=uf230d3d3-e080-4&from=drop&id=u09f5fb2c&originHeight=496&originWidth=363&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=16041&status=done&style=none&taskId=uae4da796-6942-4b02-acd2-68485091140&title=

下载结果

https://img-blog.csdnimg.cn/img_convert/66031bd9b43e6a5df07e097b511f5834.png#averageHue=#f3f2f1&clientId=uf230d3d3-e080-4&from=drop&id=u7f6ff733&originHeight=264&originWidth=1208&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=34473&status=done&style=none&taskId=uff1c66b3-d4cd-41a7-bb0c-ce1234055a3&title=

数据概览页面

https://img-blog.csdnimg.cn/img_convert/5b3c1a06903d348ead165981dd667699.png#averageHue=#fcfcfc&clientId=uf230d3d3-e080-4&from=drop&id=uc8971ac0&originHeight=623&originWidth=739&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=18375&status=done&style=none&taskId=u6186d9ff-e67f-4dcf-986e-c383d0e1121&title=

数据统计页面

https://img-blog.csdnimg.cn/img_convert/be6f4dc1d11aab9bba5e3cd385eae0dc.png#averageHue=#fdfdfd&clientId=uf230d3d3-e080-4&from=drop&id=u4e799638&originHeight=793&originWidth=1367&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=73589&status=done&style=none&taskId=ud033761c-5682-4ebb-a43b-7b403ed0477&title=

存储桶内数据

https://img-blog.csdnimg.cn/img_convert/d6bed6960d2cf4dc778d1a7d046b5239.png#averageHue=#fefefe&clientId=uf230d3d3-e080-4&from=drop&id=ub50f2a4d&originHeight=819&originWidth=1648&originalType=binary&ratio=0.8999999761581421&rotation=0&showTitle=false&size=43266&status=done&style=none&taskId=uca47e4f8-65a9-4bdd-9f1f-ebd7afdf97c&title=