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

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

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

1.9K30

Java仿百度网盘

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

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

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

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

69730

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

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

2.7K21

做网站-推荐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.2K110

图片服务器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.1K20

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

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

3.7K40

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

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

9010

The Google File System

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

23530

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.1K20

操作系统

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

11010

如何在 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.1K41

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.4K70

如何在 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

98120

iOS中,系统相册那些事

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

1.1K20

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

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] [输出文件名] 使用实例

3K30

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] [输出文件名] 使用实例

2.4K20

删除Git仓库中大文件

但是如果不小心将某个文件加入到Git缓存区后,不管后面怎么删除这个大文件,Git始终都保存有这个文件历史记录,因此项目会很大。...如果过了很久或者是有很多大文件,我们需要有一系列命令来找出大文件,然后对其进行过滤。下面详细阐述整个过程。...识别出大文件对象 Git中会对大文件进行打包,生成git pack格式.pack文件以及对应同名.idx文件,存放在.git/object/pack目录中。...找出Git对象对应文件名 由于上述步骤得到Git对象只有一长串SHA-1值,而没有具体对应在文件系统文件名字,因此我们需要找出Git对象对应文件名。...,具体命令如下,比较固定: $ rm -Rf .git/refs/original $ rm -Rf .git/logs $ git gc 之后可以用du -sh等命令查看项目目录大小。

5.9K50
领券