基于spring boot 的系统架构图 基于SpringBoot框架的云盘系统设计

平时大家会接触和用到很多云盘,比如百度云盘、阿里云盘、夸克云盘等等,其实云盘这东西在实现的时候,代码的设计只能算是一半的功劳,另一半是拥有一套强大的远程存储和宽带支持。今天给大家介绍的就是一个云盘系统,实现了常规云盘该有的大部分功能,你如果有条件,可以使用这个系统组件自己的远程云盘系统,也可以拿这个项目来学习。

基于spring boot 的系统架构图 基于SpringBoot框架的云盘系统设计(1)

基于spring boot 的系统架构图 基于SpringBoot框架的云盘系统设计(2)

使用的技术

后端:JAVA开发语言,SpringBoot框架,MySql数据库

前端:html页面,BootStrap框架

基于spring boot 的系统架构图 基于SpringBoot框架的云盘系统设计(3)

基于spring boot 的系统架构图 基于SpringBoot框架的云盘系统设计(4)

实现的功能

实现了云盘系统该有的大部分功能,包括上传、下载、新建文件夹、重命名文件或文件夹、删除文件或文件夹等。

基于spring boot 的系统架构图 基于SpringBoot框架的云盘系统设计(5)

部分代码展示

/** * 获得分片文件临时保存路径 * * @param tempPath * @param userName * @param FileName * @return */ public static String getTempDir(String tempPath, String userName, String fileName) { StringBuilder dir = new StringBuilder(tempPath); dir.append("/").append(userName); dir.append("/").append(DateUtil.getNowDate()); dir.append("/").append(fileName); return dir.toString(); } /** * 删除文件,可以是文件或文件夹 * * @param fileName 要删除的文件名 * @return 删除成功返回true,否则返回false */ public static boolean delete(String fileName) { File file = new File(fileName); if (!file.exists()) { logger.warn("删除文件失败:" fileName "不存在!"); return false; } else { if (file.isFile()) { return deleteFile(fileName); } else { return deleteDirectory(fileName); } } } /** * 删除单个文件 * * @param fileName 要删除的文件的文件名 * @return 单个文件删除成功返回true,否则返回false */ public static boolean deleteFile(String fileName) { File file = new File(fileName); // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除 if (file.exists() && file.isFile()) { if (file.delete()) { logger.warn("删除单个文件" fileName "成功!"); return true; } else { logger.warn("删除单个文件" fileName "失败!"); return false; } } else { logger.warn("删除单个文件失败:" fileName "不存在!"); return false; } } /** * 删除目录及目录下的文件 * * @param dir 要删除的目录的文件路径 * @return 目录删除成功返回true,否则返回false */ public static boolean deleteDirectory(String dir) { // 如果dir不以文件分隔符结尾,自动添加文件分隔符 if (!dir.endsWith(File.separator)) { dir = dir File.separator; } File dirFile = new File(dir); // 如果dir对应的文件不存在,或者不是一个目录,则退出 if ((!dirFile.exists()) || (!dirFile.isDirectory())) { logger.warn("删除目录失败:" dir "不存在!"); return false; } boolean flag = true; // 删除文件夹中的所有文件包括子目录 File[] files = dirFile.listFiles(); for (int i = 0; i < files.length; i ) { // 删除子文件 if (files[i].isFile()) { flag = FileUtil.deleteFile(files[i].getAbsolutePath()); if (!flag) { break; } } // 删除子目录 else if (files[i].isDirectory()) { flag = FileUtil.deleteDirectory(files[i].getAbsolutePath()); if (!flag) { break; } } } if (!flag) { logger.warn("删除目录失败!"); return false; } // 删除当前目录 if (dirFile.delete()) { logger.warn("删除目录" dir "成功!"); return true; } else { return false; } }

获取源码请关注后私信“20221123”

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页