Spring Boot中上传文件不写临时文件

news2024/11/20 4:46:45

Spring Boot中上传文件不写临时文件

前言

在SpringBoot文件上传中,用MultipartFile类型接收文件时,SpringBoot会生成一份临时文件,文件格式为upload_*.tmp,如果业务场景有大量小文件需要上传的话,可以将文件直接丢到内存里面,从而减少磁盘I/O操作,提高上传文件的性能。

具体实现

带着问题去baidu和google,貌似没有搜索到相关的词条。
在这里插入图片描述

在这里插入图片描述
最后还是咨询了ChatGPT(不得不说,真的很顶啊!!)
在这里插入图片描述
在SpringBoot中可以通过spring.servlet.multipart.file-size-threshold配置项指定文件上传大小的临界值,当上传文件小于这个值的时候,会把文件写在内存里,当上传文件大于这个值的时候,会把文件写到临时文件中,这个值默认是0,所有不配置的话,一般默认都会把文件写到临时文件中。

配置如下:

# 单个文件限制
spring.servlet.multipart.max-file-size=150MB
# 总大小限制
spring.servlet.multipart.max-request-size=200MB
# 写入磁盘的临界值
spring.servlet.multipart.file-size-threshold=100MB

测试验证

基础功能验证

上传超过100MB的文件时,可以看到临时文件的路径
在这里插入图片描述
查看临时文件
在这里插入图片描述
当上传小于100MB的文件时,StoreLoaction属性是null,没有生成临时文件
在这里插入图片描述

上传速度验证

测试上传5个大小为20MB左右的文件,总大小为100MB左右

写临时文件速度:
在这里插入图片描述
直接写内存速度:
在这里插入图片描述
速度还是有不小优化的。

结语

遇到一些问题建议可以问问ChatGPT,感觉有时候比google好用。

测试代码参考:https://github.com/yzh19961031/blogDemo/tree/master/uploadFile

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/450947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试官:说说对称加密、非对称加密、混合加密?

对称加密 两边用同一个密钥来加解密。 A把明文通过某一算法加密之后得到密文,然后把密文发送给B,B接收到密文之后用相同的密钥执行相同的算法去解密。X没有密钥,即使窃取到密文也无法窃听。 对称加密的有优缺点 对称加密的优点&#xff1a…

TryHackMe-Misguided Ghosts(boot2root)

Misguided Ghosts 端口扫描 循例nmap FTP枚举 直接登anonymous,有几个文件,下下来 info.txt 我已经包含了您要求的所有网络信息,以及一些我最喜欢的笑话。- 帕拉摩尔该信息可能指的是pcapng文件 jokes.txt Taylor: Knock, knock. Josh: …

【pytest】

pytest 1、环境安装 1、pip install pytest -i https://pypi.tuna.tsinghua.edu.cn/simple --targetC:\Dpan-app\ceshirenenv\Lib\site-packages 2、pycharm安装 2、assert >>> assert True >>> >>> assert False Traceback (most recent call …

一篇文章让你彻底学会--节流(并且自己可以手写)

Hi,有的小伙伴们在面试的时候会被要求手写节流函数,很多都被难着了吧,宝贝,那你你没有理解节流函数。 今天,就让我带你攻克它! 1.节流 单位时间内,事件触发,最多只执行一次事件回调。 人话:说…

【STL十三】适配器——迭代器适配器

【STL十二】适配器——迭代器适配器 一、迭代器1、迭代器分类2、迭代器定义3、迭代器和迭代器适配器 二、迭代器适配器、流迭代器1、简介2、迭代器适配器3、流迭代器 三、反向迭代器1、简介2、模板类3、demo 四、插入迭代器1、简介2、模板类3、demo 五、移动迭代器1、简介2、模…

Mysql列的类型定义(日期和时间类型)

文章目录 前言一、类型表二、类型简介总结 前言 日期与时间类型是为了方便在数据库中存储日期和时间而设计的,数据库有多种表示日期和时间的数据类型。其中,YEAR类型表示年,DATE类型表示日期,TIME类型表示时间,DATETIM…

大模型如何赋能?个人AI助理开始靠谱!

想象一下,生活在这样一个世界里,你有一个个人人工智能助手,它不仅能理解你的需求,还能与你一起学习和成长。一个人工智能无缝融入我们日常生活的世界,使我们能够比以往任何时候都更有效地实现我们的目标。那个世界不再…

Linux磁盘分区扩容

磁盘分区主要包含MBR(Master Boot Record)和GPT(GUID Partition Table)两种不同方式: MBR(主引导记录),驱动器上的一个特殊的启动扇区,最大支持2TB,最多支持4…

【Redis7】Redis7 主从复制(重点:主从复制原理)

【大家好,我是爱干饭的猿,本文重点介绍Redis7 复制。 后续会继续分享Redis7和其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】 上一篇文章:《【Redis7】Redis7 事务&管道&…

navicat 远程连接oracle数据库ORA-12170及ORA-28547问题

目录 1.ORA-12170问题 2.ORA-28547 问题 1.ORA-12170问题 这是防火墙端口连接问题,需要在防火墙中设置oracle数据库端口为例外 解决方案 控制面板—windows防火墙—高级设置—入站规则—新建规则 2.ORA-28547 问题 OCI版本不兼容问题,安装的oracle客…

Python每日一练(20230423)

目录 1. 删除链表的倒数第 N 个结点 🌟🌟 2. 最小覆盖子串 🌟🌟🌟 3. 二叉树的层序遍历 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏…

OpenAI最新官方ChatGPT聊天插件接口《插件安全审查流程》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(六)(附源码)

Plugin review process 插件审查流程 前言Plugin review process 插件审查流程What we are looking for in a plugin 我们正在寻找一个插件Plugin states 插件状态Types of users 用户类型Submit a plugin for review 提交一个插件进行审核其它资料下载 前言 在 ChatGPT 中&am…

【原创】【理论+题型】二次型化标准型 +合同

(A)二次型化标准型2方法对比 1任何二次型都能化为标准,有正交变换法和配方法 2任何二次型都能通过配方法变为标准型,但不一定能通过正交变化法变 3二次型的规范型唯一,标准型不唯一 4实对称阵的(合同)对角化问题&#…

产品预览 | 系统仿真与三维专业场仿真融合——MWORKS模型降阶工具箱

1 引言 近二十年来,数字化技术迅猛发展,以美国和中国提出装备数字工程为标志,人类迈入全新的数字化时代。装备数字化需要对装备的运行状态和行为进行准确的模拟和预测,这就需要利用系统仿真技术。系统仿真技术能够综合考虑装备的…

Golang每日一练(leetDay0044)

目录 130. 被围绕的区域 Surrounded Regions 🌟🌟 131. 分割回文串 Palindrome Partitioning 🌟🌟 132. 分割回文串 II Palindrome Partitioning II 🌟🌟🌟 🌟 每日一练刷题专…

启扬方案:瑞芯微3568智慧安防NVR设备解决方案

物联网技术和人工智能技术的发展和应用,让安防行业的视频监控从简单的看见画面到自动识别智能研判,大大地提高视频监控的智能化,提升监控效率。随着智慧城市、智慧交通、智慧社区等项目的实施,面对道路交通、银行、家庭、商场、楼…

App复杂动画实现——Rive保姆级教程 | 京东云技术团队

作者:京东物流 沈明亮 在App开发过程中,如果想实现动画效果,可以粗略分为两种方式。一种是直接用代码编写,像平移、旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功…

如何提升电脑使用体验?试试这5款免费软件吧

今天推荐5款实用的开源软件,它们可以极大地提高你的工作和生活效率,让你办公学习的体验更加舒适。 屏幕截图工具——ShareX ShareX是一款免费的开源软件,可以让你快速地捕捉屏幕上的任何区域,并将其保存为图片或视频文件。你还可以使用ShareX来上传你的…

chatgpt智能提效职场办公-ppt怎么做流程图

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 制作PPT流程图的步骤如下: 打开 PowerPoint,选择自己要制作流程图的PPT页面。 在页面中点击“插入”选项卡&am…

gcc编译的过程

文章目录 前言一、gcc 编译四步骤二、gcc编译常用参数三、文件后缀名对应表四、预处理五、编译六、汇编七、链接1、静态链接2、动态链接 前言 GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过 gcc 命令就可以将源文件编译成可执行文件。 一…