# jdf-system
**Repository Path**: epoint/jdf-system
## Basic Information
- **Project Name**: jdf-system
- **Description**: 分布式文件服务平台,基于springboot2.X的纯java应用,去中心化,支持节点嗅探,动态下线,节点间文件自动同步,支持不停机扩展。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-10-17
- **Last Updated**: 2023-10-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# jdf-system
#### 介绍
分布式文件服务平台,基于springboot2.X的纯java应用,去中心化,支持节点嗅探,动态下线,节点间文件自动同步,支持不停机扩展。
#### 软件架构
软件架构说明
#### 安装教程
1. clone 源码,并使用maven编译打包;
2. 修改application-*.yml的数据库配置、jdf部分配置、日志路径配置;
3. 创建数据库jdf_system,并执行bin目录下的脚本;
4. 使用maven编译打包;
5. 拷贝jdf-system-server-1.0-SNAPSHOT.jar;
6. 基于jar包的形式启动即可;
7. 默认浏览器访问地址: http://127.0.0.1:8080;
8. 登录帐号: admin / 123456;
9. 修改jdf-system-console的yml配置,基于jar包的形式启动即可完成高可用的配置;
10. 管理端界面(默认登录帐号: admin / 123456):
11. 也可以下载编译后发行版,发行版启动
```
./startup.bat <配置文件>
或
./startup.sh <配置文件>
```




#### 使用说明
1. 技术栈使用springboot 2.3.3.RELEASE、mybatis、mybatis-plus、httpClient、disruptor;
2. 提供docker部署方案,参考bin目录下的docker配置;
3. 项目的设计初衷是为了实现去中心化的分布式文件管理系统。所以在集群模式下,支持动态扩展节点;
4. 前端模块参考:vue-jdf-system;
5. jdf-system-api模块提供基于api形式的文件上传下载;
6. 服务对外统一的上传接口:/jdf/file/upload,统一下载接口: /jdf/file/view/{fileId};
7. jdf-system-console模块简单的实现了上传下载接口的高可用,仅支持轮询算法。在实际项目中需要单独部署;
8. api模块集成步骤:
* 添加依赖:
```xml
cn.juque
jdf-system-api
1.0-SNAPSHOT
cn.juque
framework-common
1.0-SNAPSHOT
```
* 添加配置:
```yaml
jdf:
ip-list: 127.0.0.1:8080
platform-id: api-consumer
secret: a1088303157342c8a1a098e2588aa10a
```
* 初始化客户端:
```java
@Configuration
@Slf4j
public class JdfSystemConfig {
@Value("#{'${jdf.ip-list}'.split(',')}")
private List ipList;
@Value("${jdf.platform-id}")
private String platformId;
@Value("${jdf.secret}")
private String secret;
@Bean
public FileInfoClient fileInfoClient() {
return new FileInfoClient(ipList, platformId, secret);
}
}
```
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)