# 网盘_云盘-FCloud网盘 **Repository Path**: yangjuns/FCloud ## Basic Information - **Project Name**: 网盘_云盘-FCloud网盘 - **Description**: FCloud网盘,一个web端的云盘,文件分析重,更加节约磁盘空间,支持cdn外链,支持开发做文件服务器。 - **Primary Language**: Java - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: https://dev.99xc.vip - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 23 - **Created**: 2020-10-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FCloud网盘 #### 介绍 一个简单的的云盘,拥有和百度云一样的文件存储,分享等功能,该网盘还支持文件cdn引用,及签名做文件服务器 - 拥有开放接口可做文件服务器 - 拥有去冗余功能,一个文件服务器只有一份数据,更好的节省了服务器硬盘空间 - 支持文件分片上传,支持操大文件上传,支持多服务器存储文件 - 自动分析硬盘大小,合理分配存储空间 #### 软件架构 - java三层架构 - 微服务架构 #### 配置文件详解 使用本项目请先安装mysql数据库和redis数据库,并且修改`application-dev.yml` * 访问[BCloud](https://www.99xc.vip)登录注册; * 创建网页应用获取`appId`和`appSecret`; * 在数据管理中导入`doc/data/`目录中的数据json(复制导入) ``` xc: name: file feign: basic: basic-server #基础服务名称,不必改 basicUrl: https://99xc.vip #基础服务地址,对应BCloud的地址 file: machineId: f001 #机器id,分布式使用 folderPaths: - path: e:/home/file #储存文件地址,必须配置 reserveSpace: 1073741824 #硬盘预留空间,单位直接,默认1GB #本机的地址 localUrl: http://127.0.0.1:8811 #本机的新地址,项目迁移时使用 localOldUrl: http://127.0.0.1:8811 #本机旧的地址,项目迁移时使用 tokenUrl: https://99xc.vip/oauth/token #登录获取token的地址,BCloud的地址 verifySignUrl: https://99xc.vip/verify_sign #验证签名地址,BCloud的地址 tempFolder: path: e:/home/file/tempFile #零时文件目录 reserveSpace: 1073741824 #硬盘预留空间,单位直接,默认1GB aspect: openAuthority: true #是否开启权限,true:开启,false:不开启 appId: xc1832640470 #登录授权的应用id,BCloud申请获取 appSecret: #登录授权的应用秘钥,BCloud申请获取 ``` 请自行配置`redis`和`mysql`的地址 #### 安装教程 - 在`an-admin`下面运行`npm i`初始化前端项目 - 完成后运行`npm run build`打包前端项目 - 运行maven的package打包命令打包即可 - 生成一个`file-server.zip`在linux解压运行`start.sh`命令启动 打包好的安装包下载地址:[2.0.3版本-部署包.zip](https://dev.99xc.vip/cnd_file/1/FCloud.2.0.3.zip) #### 签名说明 - 签名的字段按26个字母的顺序排序, - 然后转换成json拼接上appSecret秘钥 - 使用md5加密字符串 - 签名必须是字符串 #### 演示地址 演示服务器带宽比较小,访问会比较慢 [FCloud](https://dev.99xc.vip) 账号:test 密码:123456 ### 图片展示(电脑端) - 文件管理页面 ![Alt](https://dev.99xc.vip/cnd_file/1/1286102678977167361.png?open=0) - 共享文件页面 ![Alt](https://dev.99xc.vip/cnd_file/1/1286102678796812290.png?open=0) - 允许访问链接 ![Alt](https://dev.99xc.vip/cnd_file/1/1286102678599680002.png?open=0) #### 接口文档 接口文档启动后访问`/swagger-ui.html`查看(只有在开发时才可以访问) #### 版本更新 1.0版本 - 支持文件分片上传,支持多服务器存储文件 - 根据系统配置服务器分区文件大小,选择文件空间大的存放文件(由1.0的自动检测分区改为用户配置) - 对文件进行分析去重,更加节约磁盘空间 - 更具服务器配置的磁盘大小自动寻找上传服务器 - 账户管理,上传文件签名功能 - 云盘功能 - 管理文件后台 - 加入了redis数据库 - 下载支持断点续传 2.0版本 - 完全不兼容1.0版本 - 修复1.0版本删除bug - 更好的支持了微服务,分布式 - 升级了整个架构,与1.0版本设计差异巨大 - 将1.0版本的一个系统拆分成立多个 - 提升了上传文件的速度 2.0.1版本 - 兼容2.0版本 - 优化文件上传速度 - 计划2.0.2版本删除dataPath配置,本版本配置dataPath是对上个版本的数据进行处理 - 优化磁盘的空间,较少对硬盘空间的浪费 - 优化前端ui更好的支持手机端,在前端输入的数据进行验证 - 修复下载文件中文异常 2.0.2版本 - 优化了整个服务的rest接口 - 优化了项目注释 - 删除了账户系统,改用单点登录方式实现 - 简化部署,实现单独打包运行 - 修复保存共享文件bug - 优化用户下载,cdn下载,共享下载,修改下载接口 - 优化下载文件安全性问题 - 修复多服务器部署bug 2.0.3版本 - 优化了计算目录大小 - 优化了复制和保存文件 - 优化删除 - 修改新账户登陆报sql错误异常 - 修复共享文件保存,根目录重命名bug - 新增了拖动上传文件功能 - 修改打包bug - 修改cdn修改地址访问bug - 修改cdn下载接口,将用户账号改成用户id - 优化前端上传文件工具包xc-upload.tool.ts #### 联系方式 * 有问题加群询问 * qq群聊:553236240 * 如有愿意扩展该项目完善功能的朋友请在dev分支开发并提交 * 欢迎大家给出意见优化代码,谢谢大家支持! * 本项目开源协议为`LGPL3.0`该代码只供应学习,企业使用请加群联系开发者 #### 参与者 - [差不多先生](https://gitee.com/MrBlack)