# yorick_disk **Repository Path**: w94wxd/yorick_disk ## Basic Information - **Project Name**: yorick_disk - **Description**: 可用于搭建个人或公司网盘系统 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2023-10-31 - **Last Updated**: 2023-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yorick_disk #### 介绍 可用于搭建个人或公司网盘系统 #### 软件架构 该系统使用yorick_springboot为底层基础开发,包括使用yorick_springboot的redis spring session,所以该项目需要配合redis运行,底层登录逻辑和用户系统也基于yorick_springboot删除多余的权限功能而来。该文件系统使用虚拟文件夹,所有文件夹树状结构都是通过数据库模拟而来的,并不对应真实的文件路径,真实文件会以用户ID为文件夹分开放置在硬盘亦或是OSS上面的一个物理存储内,下载文件采用Java加载文件再以流的方式传回给前端,而不是通过Web服务器的http链接下载,以保证文件安全性,避免某些人通过获取他人文件的http url下载到不属于他的文件,每次下载文件前会验证用户权限,系统会选择是否准予下载 #### 安装教程 1. 修改com.yorick.resource.controller.ResourceController下的BASE_PATH路径,对应你想存放文件的物理路径 2. 修改application.yml下spring.redis里的host,port,password 3. 修改application.yml下spring.datasource里的url,username,password 4. 克隆yorick_disk_web前端项目, 前端具体配置参考yorick_disk_web下README.md #### 使用说明 1. 如果想开启输入验证码登录,请修改application.yml下的yorick.enableCode: true 2. 根目录下的yorick_disk.postman_collection.json是该项目的API,可导入postman运行 3. 根目录下的database.sql是该项目的数据库文件,导入数据库执行 #### 参与贡献 1. Yorick 2. ChatGPT #### 特技 1. 使用统一事务管理 2. 使用流式下载文件 3. 使用存储过程模拟文件夹树状结构 4. 使用Spring Redis Session做到跨域session共享