# file-server-client **Repository Path**: libai4hao/file-server-client ## Basic Information - **Project Name**: file-server-client - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-20 - **Last Updated**: 2022-02-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FileServerClient #### 介绍 本项目,封装http参考hutool JAVA 实现一个基于 HTTP 协议的简易文件服务器 Server 端和 Client 端。 Server 端功能需求: 1. 上传文件接口: 响应标准 http 协议的 post 请求发送来的文件,接收到文件后将文件重命名 (使用 UUID)并按照日期保存至服务器文件系统的不同的目录中(目录格 式 yyyyMMdd),同时将文件大小、文件类型,原始文件名、创建时间、文 件保存目录地址等元数据记录至数据库中,同时将 UUID 返回给客户端。 2. 下载文件接口: 响应客户端获取文件流的 get 请求,客户端参数为接口 1 中返回的 UUID, 在响应中写入文件流,无其他返回值,异常响应时返回 410 状态码。 3. 获取文件元数据接口: 响应客户端 get 请求,客户端参数为接口 1 中返回的 UUID,返回值为 Json 格式的元数据信息。 Server 端技术要求: 项目基于 Maven 构建,WEB 服务使用嵌入式 Jetty 或 Tomcat 实现,只提供接口 服务,无界面,可以使用任意第三方框架和库。 Client 端功能需求: Client 端 SDK: 网络编程,封装 HTTP 请求,实现对 Server 端的 3 个接口的调用。 Client 端技术要求: 项目基于 Maven 构建,无界面,尽量不使用第三方框架和依赖,并实现对客户 端 SDK 的单元测试 #### 软件架构 软件架构说明 jdk 8 mysql 5.7 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 0. 下载或克隆项目到本地,解压,使用idea打开 1. 将数据库账号和密码修改为自己的,修改项目中application.yml文件,将项目数据库账号和密码改成自己的。创建mysql数据库file,执行db目录下sql,创建表 2. 启动项目 3. 执行test目录下各个测试方法 ### 服务端使用springboot ### 客户端使用了java封装http请求,实现对 Server 端的 3 个接口的调用。测试类中测试了三个接口的使用 ### 整合了Swagger进行测试 #### 参与贡献 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/)