# 网盘_云盘-FCloud网盘 **Repository Path**: blarm/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-08-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FCloud网盘 #### 介绍 一个web端的云盘及文件管理,对所有文件实现完全管理,减少文件冗余 - 可做文件服务器,支持文件分享外链使用 - 可做云盘使用,提供云盘功能管理所有文件 - 支持文件分片上传,支持多服务器存储文件,支持操大文件上传 - 根据配置的服务器储存大小,寻找合适的服务器储存,和寻找服务器下合适的磁盘 - 对文件分析去重,更加节约磁盘空间 - 支持分布式,微服务 #### 软件架构 - spring cloud微服务架构 - 后端参考p2p架构 #### 配置文件详解 使用本项目请先安装mysql数据库和redis数据库, 并且修改`application-dev.yml` - `xc.file.folderPaths` 必须至少配置一个,服务器有多个分区,可配置多个 - `xc.file.localUrl` 本机的部署地址,可以是域名,下载将访问该地址 - `xc.file.localOldUrl` 旧的本机的部署地址,项目迁移是使用,启动时修改数据库hash信息,首次部署配置一样即可 - `xc.file.appId`,`xc.file.appSecret` 登录访问授权服务的id和秘钥可前往[https://www.99xc.vip/login](https://www.99xc.vip/login)申请 - `xc.file.tokenUrl` 获取token的地址 - `xc.file.currentUserAuthorityUrl` 获取用户本系统权限的地址 - `xc.file.tempFolder` 零时文件目录配置 - `reserveSpace` 预留空间,为硬盘预留一部分空间,保证服务器系统的正常运行 请自行配置`redis`和`mysql`的地址 #### 安装教程 - 在`an-admin`下面运行`npm i`初始化前端项目 - 完成后运行`npm run build`打包前端项目 - 将打包好的`dist/an-admin`目录下的文件拷贝到`file-server`项目的`resources/public` - 运行maven的package打包命令打包即可 - 生成一个`file-server.zip`在linux解压运行`start.sh`命令启动 打包好的安装包下载地址:[2.0.2版本-部署包.zip](https://dev.99xc.vip/cnd_file/admin/1286570747751120898.zip) #### 签名说明 - 签名的字段按26个字母的顺序排序, - 然后转换成json拼接上appSecret秘钥 - 使用md5加密字符串 - 签名必须是字符串 #### 演示地址 演示服务器带宽比较小,访问会比较慢 [demo](https://dev.99xc.vip) 账号:test 密码:123456 ### 图片展示(电脑端) - 文件管理页面 ![Alt](https://dev.99xc.vip/cnd_file/admin/1286102678977167361.png?open=0) - 共享文件页面 ![Alt](https://dev.99xc.vip/cnd_file/admin/1286102678796812290.png?open=0) - 允许访问链接 ![Alt](https://dev.99xc.vip/cnd_file/admin/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 #### 联系方式 有问题加群询问 qq群聊:553236240 如有愿意扩展该项目完善功能的朋友请在dev分支开发并提交 欢迎大家给出意见优化代码,谢谢大家支持! #### 参与者 - [差不多先生](https://gitee.com/MrBlack)