gpt4 book ai didi

java - 关于 MultipartConfig fileSizeThreshold 的建议

转载 作者:行者123 更新时间:2023-12-01 09:52:57 32 4
gpt4 key购买 nike

我有一个带有以下注释的 Servlet,非常基本。

@MultipartConfig
(
fileSizeThreshold = 1024 * 1024 * 1, // 1 MB
maxFileSize = 1024 * 1024 * 30, // 30 MB
maxRequestSize = 1024 * 1024 * 35, // 35 MB
location = "/somewhere"
)

我发帖的原因是设置, 文件大小阈值 .据我了解, 文件大小阈值 设置在将文件写入磁盘之前将文件保存在内存中的阈值。我知道默认值为 0,在上面的代码片段中,一旦传入文件达到 1mb,它将开始写入磁盘。

这个设定有什么意义?在写入之前增加内存中的文件量是否有优势?

我有一个应用程序,其中 80% 的文件上传<5mb ,但我们确实在 中得到了更大的文件25-30mb 范围。我们甚至正在考虑将最大值增加到 50mb .

我可以在 上找到的每篇文章MultipartConfig 描述什么 文件大小阈值 确实但不是如何/何时使用它......鉴于上一段中的文件要求,有人有任何建议吗?如果它有所作为,我们会在 ubuntu 机器上运行 glassfish4。

提前致谢!

最佳答案

fileSizeThreshold 的想法有点误导,因为它是一个简单的机制,但它的实际用例似乎非常罕见,以至于让您怀疑自己是否正确理解了该属性。

您说它是文件将持久化到磁盘的点是正确的。请注意,默认情况下,这是 0,因此默认情况下文件将写入磁盘,这可能是您 99% 的时间想要的。
fileSizeThreshold当您的文件生命周期很短并且以很高的速度进入时会派上用场,这样将文件持久化到磁盘会导致显着的性能开销。您可以将此参数设置为大于 0 以节省一些磁盘 i/o。

之所以有一个阈值比有一个总是将文件保存在内存中的 boolean 值很重要的原因是给自己一个安全网,不要在内存中保存太大的文件(出于显而易见的原因)。

关于java - 关于 MultipartConfig fileSizeThreshold 的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321046/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com