Wang Xinyao

Results 2 issues of Wang Xinyao

### 背景 #### 项目背景 在当前的软件开发实践中,项目管理和文件版本控制是核心组成部分。项目涉及多种文件类型,包括代码、图片、音频等,需求对这些文件进行有效管理以支持项目的开发和维护。 #### 需求背景 用户需要一个方便、高效的方式来创建、编辑、保存和管理项目文件。特别是在进行文件编辑时,能够实现对文件的增量更新,而不仅仅是全量更新,以提高效率和节省资源。同时,项目文件的唯一性和不重复性需要得到保证。 ### 方案概述 **项目文件的存储不再以项目为单位存储到对象存储,而是以文件为单位进行存储**。 #### 角色及其职责 - **前端角色**:负责用户界面的设计和实现,包括项目文件的创建、编辑和显示。前端还需要处理与后端的通信,以及直接与对象存储服务进行交互来上传和删除文件。 - **后端角色**:负责处理来自前端的请求,包括提供项目的完整信息和更新项目信息。项目信息主要包括项目的文件结构、版本号、`id`、`uid`、更新时间等。后端不直接与对象存储打交道。 - **对象存储服务**:提供项目文件的存储能力,每个文件通过哈希算法生成的唯一URL进行访问,保证文件的唯一性和不重复性。 #### 如何串起来 1. **项目加载**:前端向后端发起HTTP请求,后端从数据库中获取项目的完整信息并返回给前端,前端解析并显示项目内容。 其中文件结构的示例如下(数据库使用MySQL,不能存储数组,这里会将 JSON 序列化(marshal)为字符串就可以方便的将项目的结构存储到数据库中) ```json { "index.json": "https://xxx.com/d2a6802666d0d9248393d0b02abc93ae.json",...