首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

百度网盘源码分享!基于 Maven+SpringBoot+SpringDataJPA

这是我目前见过最好网盘系统项目。功能完整,代码结构清晰。值得推荐。...网盘系统核心目的有两个: 提供客户端给业务系统集成,统一管理业务系统文件; 提供在线协调办公、管理个人文件功能。系统会陆续更新和完善一些功能。 二、部署架构说明 ?...后端技术 ①Maven+SpringBoot+SpringDataJPA作为基础架构 ②Dubbo+Zookeeper作为服务治理架构 ③Nacos作为配置中心 ④Redis做分布式缓存、过期监听 ⑤Zookeeper...上传功能:主要是针对大文件切块上传、秒传、文件夹上传 ②下载功能:主要是大文件切块下载;多文件(夹)合并、压缩下载 ③文件分享:文件分享包括好友分享、私密链接分享、分享文件转存 ④相册管理:可以建立不同相册来管理图片...2、后台系统 ①组件管理:主要管理文件预览和编辑组件 ②类型管理:主要是管理文件格式、对应图标、对应预览和编辑组件 ③日志管理:存储和展示业务系统操作日志记录,并且可以根据追踪ID来关联所有的日志信息

2K30

Java仿百度网盘,拿来学习搞外快,都是极好选择

一、前言 在gitee和github里面基本上找不到一款好用、功能完善、且开放源码网盘系统,有一些可以免费试用但是只提供安装包,于是在利用业务时间开发了一套轻量级且易于上手网盘系统,主要基于目前主流前后端分离和微服务架构模式开发...网盘系统核心目的有两个: 提供客户端给业务系统集成,统一管理业务系统文件; 提供在线协调办公、管理个人文件功能。系统会陆续更新和完善一些功能。 二、部署架构说明 ?...②WebUploader.js做切块上传框架 后端技术 ①Maven+SpringBoot+SpringDataJPA作为基础架构 ②Dubbo+Zookeeper作为服务治理架构 ③Nacos作为配置中心 ④Redis做分布式缓存...四、功能说明 1、网盘系统 ①上传功能:主要是针对大文件切块上传、秒传、文件夹上传 ②下载功能:主要是大文件切块下载;多文件(夹)合并、压缩下载 ③文件分享:文件分享包括好友分享、私密链接分享、分享文件转存...④相册管理:可以建立不同相册来管理图片,并且可以图片在线预览功能 ⑤回收站:删除文件进入回收站,可以进行还原或者彻底删除 ⑥推送功能:主要是好友分享消息推送、过期消息推送、容量更新推送 ⑦分布式锁

75830
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java仿百度网盘

    一、前言 在gitee和github里面基本上找不到一款好用、功能完善、且开放源码网盘系统,有一些可以免费试用但是只提供安装包,于是在利用业务时间开发了一套轻量级且易于上手网盘系统,主要基于目前主流前后端分离和微服务架构模式开发...网盘系统核心目的有两个: 提供客户端给业务系统集成,统一管理业务系统文件; 提供在线协调办公、管理个人文件功能。系统会陆续更新和完善一些功能。 二、部署架构说明 ?...②WebUploader.js做切块上传框架 后端技术 ①Maven+SpringBoot+SpringDataJPA作为基础架构 ②Dubbo+Zookeeper作为服务治理架构 ③Nacos作为配置中心 ④Redis做分布式缓存...四、功能说明 1、网盘系统 ①上传功能:主要是针对大文件切块上传、秒传、文件夹上传 ②下载功能:主要是大文件切块下载;多文件(夹)合并、压缩下载 ③文件分享:文件分享包括好友分享、私密链接分享、分享文件转存...④相册管理:可以建立不同相册来管理图片,并且可以图片在线预览功能 ⑤回收站:删除文件进入回收站,可以进行还原或者彻底删除 ⑥推送功能:主要是好友分享消息推送、过期消息推送、容量更新推送 ⑦分布式锁

    1.6K10

    拿走谢!Java仿百度网盘项目!

    一、前言 在gitee和github里面基本上找不到一款好用、功能完善、且开放源码网盘系统,有一些可以免费试用但是只提供安装包,于是在利用业务时间开发了一套轻量级且易于上手网盘系统,主要基于目前主流前后端分离和微服务架构模式开发...网盘系统核心目的有两个: 提供客户端给业务系统集成,统一管理业务系统文件; 提供在线协调办公、管理个人文件功能。系统会陆续更新和完善一些功能。 二、部署架构说明 ?...②WebUploader.js做切块上传框架 后端技术 ①Maven+SpringBoot+SpringDataJPA作为基础架构 ②Dubbo+Zookeeper作为服务治理架构 ③Nacos作为配置中心 ④Redis做分布式缓存...四、功能说明 1、网盘系统 ①上传功能:主要是针对大文件切块上传、秒传、文件夹上传 ②下载功能:主要是大文件切块下载;多文件(夹)合并、压缩下载 ③文件分享:文件分享包括好友分享、私密链接分享、分享文件转存...④相册管理:可以建立不同相册来管理图片,并且可以图片在线预览功能 ⑤回收站:删除文件进入回收站,可以进行还原或者彻底删除 ⑥推送功能:主要是好友分享消息推送、过期消息推送、容量更新推送 ⑦分布式锁

    2.9K22

    做网站-推荐3种CSS,JS合并方式

    文件,下面就要写一个批处理文件来合并以上文件了 (3) 合并 js,css 文件批处理方法 , 文件名假设命名为 debug.bat 复制代码 代码如下: copy G.js+T.js GT_bin.js.../b 说明 : (1)输入要合并js文件,保存debug.bat文件,运行debug.bat即可. (2)就这么一行代码就搞定了,十分简单,GT_bin.js 为合并之后文件名称 , /b是固定参数...#其他页面可利用缓存优化加载。 缺点: #页面可能会加载到本页面不使用代码。...缺点: #有多少个页面,就会生成多个js,导致存在大量共同js代码冗余。 #共用部分无法使用缓存优化加载。 #合并和使用会相对比较复杂。...优点: #共用部分得到加载优化,每个页面引用也尽可能做到了冗余。 缺点: #多多少少还是会存在某些页面会引用到不需要代码,共用不并不是完完全全共用。

    3.3K110

    图片服务器url hash架构

    因为针对单一个urlhash结果是一样,所以理论上这个url会被永久分配到固定一台服务器上。另外因为经过了hash算法,所以分配url就很均匀,同时访问量也可以达到均衡。...容灾问题:系统某个时间段被访问数据严重超出缓存集群中最小单机容纳容量就会造成容灾,容灾会使大量单一链接穿透,直接对后台IO性能影响很大。...基于dnshash架构说明 这个架构适合面向用户图片系统,比如论坛、相册、博客中图片上传。这样它才能够保证文件名有一致规范。...这个架构图分了36个域名,图片文件名是用md5值起,在md5值中取一位字母就可以表明它是在哪个域名里,域名就对应了机器,上传分发时候也是根据此字母来分发。...本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,代表 Java架构师必看 对观点赞同或支持。

    1.3K20

    分布式对象存储设计原理

    1 对象存储数据是如何保存大文件? 对象存储对外提供服务,就是个近乎无限容量大文件KV存储,所以对象存储和分布式文件系统之间,没有那么明确界限。...这些为管理集群而存储数据,叫元数据(Metadata)。保存元数据存储系统须是个集群。但元数据集群存储数据量少,数据变动频繁,客户端或网关都会缓存一部分元数据,所以元数据集群对并发要求不高。...在对象存储中,每个大文件都会被拆成多个大小相等块儿(Block),把文件从头到尾按固定块大小,切成一块一块,最后一块长度有可能不足一个块大小,也按一块处理。块大小配置为几十KB到几MB。...所以一般都会再把块聚合,放到块容器。“容器”,存放一组块逻辑单元。没有统一叫法,如ceph中称为Data Placement。容器内块数大多固定,所以容器大小也固定。...CDN缓存文件一般是保存在CDN节点磁盘上,当然排除某些CDN会用节点内存缓存文件,加速访问。 为什么分块后又聚合到容器中,直接一个容器一个块不行吗?

    1.3K20

    伸手党福利 - 直击TFS技术内幕

    以QZone相册为例,索引存储中保存着相册列表、图片排重索引以及图片数据原信息,而文件索引层则负责上面三种索引逻辑组织,图片数据存储在数据存储层中。...文件索引 面对丰富业务场景,TFS上文件长度从几KB到几十GB都有,大文件对文件上传、下载、存储都带来很大挑战。...数据排重为用户提供了图片、文件秒传,既优化大文件上传用户体验,也降低存储成本。...MHT技术中,路由表基于100万一致性哈希虚拟节点,大小可控有利于路由同步、缓存;Master作为中心节点负责路由管理,提供日常运营副本状态、节点更替等路由变化功能;在可平行扩展access中缓存路由...节点故障离线、增加节点带来数据腾挪均衡是常态,而数据腾挪是一个离线过程,如何保证在线访问新写数据丢呢?

    3.8K40

    分布式文件系统:JuiceFS 技术架构

    元数据引擎(Metadata Engine):用于存储文件元数据(metadata),包含以下内容: 常规文件系统元数据:文件名、文件大小、权限信息、创建修改时间、目录结构、文件属性、符号链接、文件锁等...Chunk 存在是为了对文件做切分,优化大文件性能,而 Slice 则是为了进一步优化各类文件写操作,二者同为文件系统内部逻辑概念。Slice 长度固定,取决于文件写入方式。...因此相较于顺序写来说,大文件随机写情况更复杂:每个 Chunk 内可能存在多个连续 Slice,使得一方面数据对象难以达到 4 MiB 大小,另一方面元数据需要多次更新。...碎片清理以后台任务形式发生,除了系统自动运行,还能通过 juicefs gc 命令手动触发。 2.客户端写缓存 客户端写缓存,也称为「回写模式」。...数据流如下图所示: 但是对于大文件随机读场景,预读用途可能不大,反而容易因为读放大和本地缓存频繁写入与驱逐使得系统资源实际利用率降低,此时可以考虑用 --prefetch=0 禁用预读。

    55010

    【Linux】文件系统

    文件就等于很多个扇区下标 一般操作系统与磁盘交互时这样一个一个下标来确认。基本单位可能是 4KB ,也就是一次读取多个扇区。 4KB 假如是8 个连续扇区,我们称之为数据块。...inode 表 : 存放文件属性 如 文件大小,所有者,最近修改时间等 Linux中文件属性是大小固定集合体(一般固定128字节) 包含文件名,但是都有inode_number,通过inode号来标识一个文件...inode 表中datablock[N]通常只有15容量,那是怎样储存大文件呢?...并且可以跨组访问,但是强烈推荐这样,因为硬件限制会导致访问较慢) 上述寻找过程是以inode为索引搜索 ,为什么要不使用文件名呢??? 这是因为目录本质也是一个文件,是文件就会有内容与属性。...而Linux系统会进行路径缓存,来方便我们寻找工作。 我们一般使用云服务器会有一个虚拟磁盘vda,系统中会有许多分区。

    10610

    Android工具类ImgUtil选择相机和系统相册

    本文实例为大家分享了Android选择相机和系统相册具体代码,供大家参考,具体内容如下 说明: Android选择相机和系统相册 代码: 1、打开系统相机和系统相册工具类 package com.gxjl.pe.gxjlpesdk.util...选择图片,从图库、相机 * * @param activity 上下文 */ public static void choicePhoto(final Activity activity) { //采用系统...)]), REQUEST_CODE_CAMERA); } } else { //打开相机-兼容7.0 openCamera(activity); } } }). setNegativeButton("系统相册...7.0,因为Android 7.0系统开始 使用本地真实Uri路径不安全,使用FileProvider封装共享Uri。...android:resource="@xml/file_paths"/ </provider 5、file_paths.xml android:resource=“@xml/file_paths”中@xml/文件名字可以随便起

    1.2K20

    鸿蒙(HarmonyOS)性能优化实战-文件上传下载性能提升

    后台任务为可等待、任意界面的、异步,通常数据量较大、耗时长,例如缓存一部电影、同步数百兆字节乃至若干吉字节数据,优先级相较于前端任务低且与应用生命周期无关。...任务失败重试:对于不可恢复原因,直接失败;对于可恢复原因,网络断开、网络类型匹配等,现场重试,任务到等待网络恢复队列;网络超时则就地重试1次,仍网络超时,则立即失败。...在服务退出过程中,新接口请求可能失败,在客户端检查服务状态、通过重试按需启动。通知:任务从第一次开始到最终结束都应该有进度通知。目前采用固定时间间隔触发进度通知,前台任务1秒,后台任务3秒。...无损压缩:对一些零碎文件可以使用 @ohos.zlib(Zip模块) 来进行打包压缩,减少上传请求次数;对一些大文件可以利用缓存技术,服务器将曾经上传过大文件MD5码缓存起来,本地在上传前预生成MD5...以从相册批量上传图片为例,介绍大量文件打包无损压缩上传相关技术,下图为相关示例界面截图:图二 相册批量上传图片示例图以批量上传照片(分辨率为480*640,24位,平均大小50~120KB)为例,在RK

    13720

    The Google File System

    系统存储适当数量大文件。我们期望有几百万个文件,每个文件大小通常为100mb或更大。几GB大小文件是常见情况,应该有效地管理。必须支持小文件,但我们不需要针对它们进行优化。...客户端缓存提供好处很少,因为文件很大,无法缓存。这样可以消除缓存一致性问题,简化系统,但是客户端会缓存元数据。...Master参与文件读写,客户端询问master应该联系哪个chunkservers,直接与相应chunkservers交互。...然后,它向master发送一个包含文件名和chunk索引请求。 Master返回相应chunk handle和副本位置。客户端使用文件名和chunk索引作为键来缓存这些信息。...使用日志允许我们简单、可靠地更新master状态,并且在master崩溃时不会冒不一致风险。Master持久化chunk位置信息。

    29730

    DiscuzX2.5数据库字典

    uid => ‘用户 uid’ variable => ‘缓存变量名称’ value => ‘缓存变量值’ expiration => ‘过期时间’ pre_forum_statlog – 版块统计日志表...albumid => ‘相册ID ‘ albumname => ‘相册名字’ catid => ‘相册系统分类’ uid => ‘相册用户ID ‘ username => ‘相册用户名’ dateline...允许查看相册用户ID,多个用户ID用”m”间隔 ‘ favtimes => ‘相册收藏次数’ sharetimes => ‘相册分享次数’ depict => ‘相册描述 ‘ pre_home_appcreditlog...targettplname => ‘目标模板文件名’ tpldirectory => ‘原模板所在目录’ primaltplname => ‘原模板文件名’ diycontent => ‘DIY内容...栏目id’ upid => ‘上级栏目id’ catname => ‘标题’ num => ‘日志数’ displayorder => ‘显示顺序’ pre_home_album_category – 相册系统栏目

    1.5K70

    操作系统

    外部设备中断:内部(软件中断,异常,系统调用),外部(硬件,设备,时钟)中断响应:中断向量转移到程序入口地址,多级中断程序状态字PSW:保存程序状态,中断码,中断屏蔽位,每个处理器具备一个PSW寄存器操作系统特点...,动态内存分配(分区,分页,分段,段页式)内存管理策略分区:固定,动态(减少内部碎片)分页:内存分为页帧frame,程序分为页page,页表记录frame中存放page分段:按段、堆、栈划分内存,段长可变...,由段表记录起始地址和长度段页式:段划分为页(访问段表获取页地址,访问页表获取物理地址,访问物理地址取指令)快表(高速缓存):缓存最近使用过页到帧映射,未命中则访问页表,然后访问绝对地址二级页表:外层页号加偏移量得到内层页号...:FAT,NTFS,Ext2,HPFSUNIX文件物理结构数据块固定4KB,小于这个长度直接读写大文件存在多个连续数据块中,使用索引(间接块)来寻址,4M一次寻址,4G多次寻址文件目录文件控制块(...文件名,物理地址,长度,块数,rwx权限)存取方法顺序,随机UNIX操作系统权限:ugoa文件类型:dlsbcp-输入输出重定向管道命令正则表达式

    15310

    如何在 Linux 下优雅进行大文件切割与合并?

    往往是因为网络传输限制,导致很多时候,我们需要在 Linux 系统下进行大文件切割。这样将一个大文件切割成为多个小文件,进行传输,传输完毕之后进行合并即可。 1....文件切割 - split 在 Linux 系统下使用 split 命令进行大文件切割很方便 [1] 命令语法 # -a: 指定输出文件名后缀长度(默认为2个:aa,ab...) # -d: 指定输出文件名后缀用数字代替...-a] [-d] [-l ] [-b ] [-C ] [要切割文件] [输出文件名] [2] 使用实例 # 行切割文件 $ split -l 300000 users.sql...setting the start value -e, --elide-empty-files do not generate empty output files with '-n' 产生空输出文件...文件合并 - cat 在 Linux 系统下使用 cat 命令进行多个小文件合并也很方便 [1] 命令语法 # -n: 显示行号 # -e: 以$字符作为每行结尾 # -t: 显示TAB字符(^I

    1K20

    如何在 Linux下优雅进行大文件切割与合并

    往往是因为网络传输限制,导致很多时候,我们需要在 Linux 系统下进行大文件切割。这样将一个大文件切割成为多个小文件,进行传输,传输完毕之后进行合并即可。 1....文件切割 - split 在 Linux 系统下使用 split 命令进行大文件切割很方便 [1] 命令语法 # -a: 指定输出文件名后缀长度(默认为2个:aa,ab...) # -d: 指定输出文件名后缀用数字代替...setting the start value -e, --elide-empty-files do not generate empty output files with '-n' 产生空输出文件...文件合并 - cat 在 Linux 系统下使用 cat 命令进行多个小文件合并也很方便 [1] 命令语法 # -n: 显示行号 # -e: 以$字符作为每行结尾 # -t: 显示TAB字符(^I)...参考文档 Linux 大文件分割与合并 Linux 学习–文件分割与合并 本文转载自:「 Escape 博客 」,原文:https://tinyurl.com/y3zhsyyw,版权归原作者所有

    3.6K41

    Linux 下大文件切割与合并

    往往是因为网络传输限制,导致很多时候,我们需要在 Linux 系统下进行大文件切割。这样将一个大文件切割成为多个小文件,进行传输,传输完毕之后进行合并即可。 ?...文件切割 - split 在 Linux 系统下使用 split 命令进行大文件切割很方便 命令语法 -a: #指定输出文件名后缀长度(默认为2个:aa,ab...)...-d: #指定输出文件名后缀用数字代替 -l: #行数分割模式(指定每多少行切成一个小文件;默认行数是1000行) -b: #二进制分割模式(支持单位:k/m) -C: #文件大小分割模式(切割时尽量维持每行完整性...setting the start value -e, --elide-empty-files do not generate empty output files with '-n' 产生空输出文件...cat 命令进行多个小文件合并也很方便 命令语法 -n: #显示行号 -e: #以$字符作为每行结尾 -t: #显示TAB字符(^I) cat [-n] [-e] [-t] [输出文件名] 使用实例

    3.1K30

    Linux 下大文件切割与合并

    作者: Escape 链接: https://escapelife.github.io/posts/72f237d3.html 往往是因为网络传输限制,导致很多时候,我们需要在 Linux 系统下进行大文件切割...文件切割 - split 在 Linux 系统下使用 split 命令进行大文件切割很方便 命令语法 -a: #指定输出文件名后缀长度(默认为2个:aa,ab...)...-d: #指定输出文件名后缀用数字代替 -l: #行数分割模式(指定每多少行切成一个小文件;默认行数是1000行) -b: #二进制分割模式(支持单位:k/m) -C: #文件大小分割模式(切割时尽量维持每行完整性...setting the start value -e, --elide-empty-files do not generate empty output files with '-n' 产生空输出文件...cat 命令进行多个小文件合并也很方便 命令语法 -n: #显示行号 -e: #以$字符作为每行结尾 -t: #显示TAB字符(^I) cat [-n] [-e] [-t] [输出文件名] 使用实例

    2.9K50

    iOS中,系统相册那些事

    通过ALAssetRepresentation可以获取ALAsset原图、全屏图、文件名等信息; 自定义行相册思路 1.实例化照片库,获取所有的相册; 2.展示相册所有照片,可自义展示样式...子类,表示一个相册或者一个时刻,也可以是一个【智能相册】(系统提供一系列相册集合,包括最近删除、相机相册、最爱相册等等)中一个; 4.PHFetchResult:表示一系列资源结果集合,也可以是相册资源集合...,一般情况下,可以从PHCollection或PHAsset类方法中获取; 5.PHImageManager:用于处理资源加载,图片加载过程带有缓存处理; 6.PHImageRequestOptions...**获取系统相册,系统提供下列三种获取不同分类相册方法。...,多使用PHFetchResult获取对应资源,采用枚举方式获取资源,在效率上会有所提高; 以上内容均来自工作学习中心得,有不足地方欢迎大家前来讨论,共同提高。

    1.1K20
    领券