目录
摘 要 1
Abstract 2
1.项目简介 3
1.1项目主要功能 4
1.2技术栈 4
1.3部署注意 4
2.数据库设计 5
2.1表结构 5
2.2ER图 7
2.3SQL插入 8
3.项目开发 9
3.1项目配置 9
3.2接口开发 10
3.3项目前端页面开发 12
3.4后端接口开发 21
3.4.1工具类 21
3.4.2restful接口(部分源码) 27
3.4.3FileService文件服务接口 31
4.项目展示 32
5.总结 35
6.更新 35
1.项目简介
因为开发中很多时候都需要上传和下载文件,所以想开发出一个模块,用于文件的上传和下载,自然而然也就想到了网盘,因为是个人开发,本文转载自http://www.biyezuopin.vip/onews.asp?id=14721所以版本项目应该会持续迭代,优化,此外,技术栈是springboot+mybatis+jquery+bootstrap。

1.1项目主要功能
•用户的邮箱注册、验证码验证以及用户登录。
•引入QQ第三方登录,为用户提供便捷的登录通道。
•不需要注册账号,也可以上传满足条件的临时文件,但是只4小时内有效。
•文件的管理,上传、下载、重命名、删除、查看统计数据、分类管理等。
•文件夹的管理,创建、删除、重命名。
•文件的分享,支持通过链接和二维码的分享方式。
•区分普通用户和管理员的角色,管理员可以修改普通用户的使用权限和网盘容量。
1.2技术栈
前端
•HTML、CSS、JavaScript、JQuery
•BootStrap以及多个插件
后端
•SpringBoot + MyBatis
•EhCache缓存
•ThymeLeaf 模板引擎
•腾讯QQ 第三方登录
•Ftp工具类、二维码工具类
部署
•阿里云轻量应用服务器
•Docker 环境
•FTP 服务
•MySQL 数据库
1.3部署注意
拉取项目到本地后,你需要修改一下配置信息
•application.yml:修改数据源信息以及邮箱服务端信息
•config.DruidConfig:修改druid登录的用户名和密码
•utils.FtpUtil:修改FTP服务器的基本信息
•utils.MailUtils:修改邮箱服务端发送方的邮箱
•resources.qqconnectconfig.properties:修改app_ID 和 app_KEY和 redirect_URI

3.项目开发
3.1项目配置
mybatis配置
<configuration><!--关于MyBatis的一些常用配置--><settings><setting name="logImpl" value="STDOUT_LOGGING" /><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/><setting name="mapUnderscoreToCamelCase" value="true"/></settings><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"/></plugins>
</configuration>
3.2接口开发
@Mapper
public interface FileFolderMapper {/*** @Description 根据文件夹的id删除文件夹* @Author xw* @Date 15:18 2020/2/26* @Param [fileFolderId]* @return java.lang.Integer**/Integer deleteFileFolderById(Integer fileFolderId);/*** @Description 根据父文件夹的id删除文件夹* @Author xw* @Date 15:18 2020/2/26* @Param [parentFolderId]* @return java.lang.Integer**/Integer deleteFileFolderByParentFolderId(Integer parentFolderId);/*** @Description 根据仓库的id删除文件夹* @Author xw* @Date 15:18 2020/2/26* @Param [fileStoreId]* @return java.lang.Integer**/Integer deleteFileFolderByFileStoreId(Integer fileStoreId);/*** @Description 增加文件夹* @Author xw* @Date 15:18 2020/2/26* @Param [fileFolder]* @return java.lang.Integer**/Integer addFileFolder(FileFolder fileFolder);/*** @Description 根据文件夹的id获取文件夹* @Author xw* @Date 15:18 2020/2/26* @Param [fileFolderId]* @return com.moti.entity.FileFolder**/FileFolder getFileFolderById(Integer fileFolderId);/*** @Description 根据父文件夹的id获取文件夹* @Author xw* @Date 15:18 2020/2/26* @Param  * @param null* @return**/List<FileFolder> getFileFolderByParentFolderId(Integer parentFolderId);/*** @Description 根据仓库的id获取文件夹* @Author xw* @Date 15:19 2020/2/26* @Param [fileStoreId]* @return java.util.List<com.moti.entity.FileFolder>**/List<FileFolder> getFileFolderByFileStoreId(Integer fileStoreId);/*** @Description 获得仓库的文件夹数量* @Author xw* @Date 21:56 2020/2/10* @Param [fileStoreId]* @return java.lang.Integer**/Integer getFileFolderCountByFileStoreId(Integer fileStoreId);/*** @Description 根据仓库Id获得仓库根目录下的所有文件夹* @Author xw* @Date 23:49 2020/2/9* @Param [fileStoreId]* @return java.util.List<com.molihub.entity.FileFolder>**/List<FileFolder> getRootFoldersByFileStoreId(Integer fileStoreId);/*** @Description 根据文件夹的id修改文件夹信息* @Author xw* @Date 15:19 2020/2/26* @Param [fileFolder]* @return java.lang.Integer**/Integer updateFileFolderById(FileFolder fileFolder);/*** @Description 根据文件夹的id获取文件夹下面的文件* @Author xw* @Date 15:19 2020/2/26* @Param [fileStoreId]* @return java.util.List<com.moti.entity.MyFile>**/List<MyFile> getFileByFileFolder(Integer fileStoreId);}









基于springboot和ftp实现的网盘文件系统相关推荐

  1. ecs服务器配置git_基于ECS和NAS搭建个人网盘

    场景介绍 本文为您介绍如何快速搭建一个基于ECS和NAS的私有网盘. 背景知识 本场景主要涉及以下云产品和服务: 云服务器ECS 云服务器(Elastic Compute Service,简称ECS) ...

  2. 基于ECS和NAS搭建个人网盘

    基于ECS和NAS搭建个人网盘 阿里云高校学生计划 基于ECS和NAS搭建个人网盘 场景体验目标 背景知识 实验详情 1 连接ECS服务器 2 安装 OwnCloud 3 安装 Apache 服务 4 ...

  3. 基于spring boot开发的个人网盘

    文章目录 前言 一.项目现阶段部分效果演示 二.项目数据库部分表设计 2.1. 创建user表.file表.logs表等sql语句 2.2 FileMapper.xml和FileMapper接口 三. ...

  4. 【阿里云ECS进阶训练营】day07基于ECS和NAS搭建个人网盘

    目录 一:背景知识 二:实验步骤 1.连接ECS服务器 2.安装OwnCloud 3.安装Apache服务 4.安装并配置PHP 5.配置OwnCloud 6.挂载NAS服务 一:背景知识 云服务器E ...

  5. 基于golang做一个简易私有网盘

    服务器端代码main.go package main import ( "io" "net/http" "os" "fmt&quo ...

  6. 搭建基于springboot的FTP服务器

    引言 最近有一个在集成系统上提供1G以上文件下载的功能,还要提供文件的展示功能和删除的操作,因为常规的文件流速度慢并且容易断掉因此我们采用FTP的方式,系统架构如下图所示,这里我们采用的ftp框架是a ...

  7. 基于owncloud构建私有云储存网盘

    注意事项:需要ping通外网 需要LAMP架构 yum -y install httpd php php-mysql mariadb-server mariadb sqlite php-dom php ...

  8. 基于springboot+layui的简易门户网、发布后台

    空闲时间做了个门户网+发布后台,两者是分离的.以前看这类应用都是,后台发布后要生成门户的静态网页,另外对于页头.页脚这些通用部分,用的比较多的是shtml文件(需要ssi支持).而自己一直是做信息化系 ...

  9. 基于Go语言的网盘开发(GloudDisk)

    (记录一下自己做项目的过程) 基于go-zero实现的简易的网盘系统,如果有小伙伴对这个项目感兴趣,可以去网上搜索一些资料.这里推荐一下我学习的来源:[项目实战]基于Go-zero.Xorm的网盘系统 ...

最新文章

  1. 使用SSH和Nginx做内网HTTP映射
  2. java urlconn 下载慢_使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法...
  3. Python解释器种类以及特点
  4. 自信的真正含义--NLP
  5. GIS投影的基本原理、超图数据集导入导出坐标系文件
  6. C语言连接MYSQL存取数据的一个例子
  7. 工作几年的感想(一)
  8. [李景山php]每天TP5-20170111|thinkphp5-Model.php-4
  9. 计算机程序的构造和解释 python_SICP Python 描述 第三章 计算机程序的构造和解释 3.1 引言...
  10. android tv ko,Android TV 键值修改流程
  11. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器(及Windows 10无法找到SQL server配置管理器的解决方法)
  12. 怎样防止服务器被攻击 常见的服务器攻击方式有哪些
  13. Androidstudio连接华为手机问题
  14. python 列表解析式
  15. 如何提高自身代码能力
  16. 物流学哪方面计算机知识,物流说丨物流专业的毕业生应该具备的6大技能
  17. python动态规划爬楼梯_Python走楼梯问题解决方法示例
  18. Linux、Qt等安装镜像下载--清华大学开源软件镜像站
  19. 集成友盟的意见反馈功能
  20. Linux中更改文件显示只读不可写

热门文章

  1. linux 虚拟机mac配置网络,Macbook中VMWare的Centos7虚拟机上网配置
  2. minecraft java版多少钱_Java版版本记录
  3. 游戏编程 - 从Godot引擎中的lerp(...)函数到线性插值
  4. 在DB2中创建第一个触发器
  5. 相对定位(relative),绝对定位(absolute),固定定位(fixed)
  6. 微星970A-G43 主板 PCIE转NVME固态硬盘做WIN10启动盘,解决方案
  7. java报错意外的类型_Java意外类型错误
  8. 企业级负载均衡解决方案之八:腾讯云负载均衡解决方案CLB
  9. 移远EC200U-CN 4G Cat1 模组 TCP收发数据和GPS使用流程
  10. 果真这么难学?谁再说mysql难学,我一张思维导图就扔过去!