如何在 Ktor 中限制允许的文件大小(多部分文件)
How to limit allowed file size (multipart-file) in Ktor
我想知道如何在 ktor 中更改多部分文件允许的文件大小?
我在文档中找不到任何关于此的内容(只有如何接收多部分文件)。我正在使用嵌入式网络服务器。我将限制客户端上的文件大小,但最好在服务器上也有该限制。
在网上搜索,我发现与该主题相关的唯一两件事是这个示例(似乎是 WAR 文件的配置):
https://github.com/ktorio/ktor-samples/blob/master/other/maven-google-appengine-standard/webapp/WEB-INF/web.xml
和这个例子(如何接收多部分请求:
https://github.com/ktorio/ktor-samples/blob/master/app/youkube/src/Upload.kt
据我所知,没有开箱即用的东西。
不过你可以从官方的例子中得到启发:
https://ktor.io/servers/uploads.html
注意这部分:
val bytes = read(buffer).takeIf { it >= 0 } ?: break
还有他们计数的事实 bytesCopied
:
bytesCopied += bytes
所以,你可以做类似的事情
if (bytesCopied > limit) { throw RuntimeException("Limit reached") }
这就是 Apache Tomcat 实现所做的。
我想知道如何在 ktor 中更改多部分文件允许的文件大小? 我在文档中找不到任何关于此的内容(只有如何接收多部分文件)。我正在使用嵌入式网络服务器。我将限制客户端上的文件大小,但最好在服务器上也有该限制。
在网上搜索,我发现与该主题相关的唯一两件事是这个示例(似乎是 WAR 文件的配置): https://github.com/ktorio/ktor-samples/blob/master/other/maven-google-appengine-standard/webapp/WEB-INF/web.xml
和这个例子(如何接收多部分请求: https://github.com/ktorio/ktor-samples/blob/master/app/youkube/src/Upload.kt
据我所知,没有开箱即用的东西。
不过你可以从官方的例子中得到启发: https://ktor.io/servers/uploads.html
注意这部分:
val bytes = read(buffer).takeIf { it >= 0 } ?: break
还有他们计数的事实 bytesCopied
:
bytesCopied += bytes
所以,你可以做类似的事情
if (bytesCopied > limit) { throw RuntimeException("Limit reached") }
这就是 Apache Tomcat 实现所做的。