我正在开发一个允许客户端上传大型tar.gz文件的播放应用程序。我
举个例子,用户可以使用这个curl命令上传文件名“testfile.tar.gz”。
curl -v -F "corpusFile=@testfile.tar.gz" -F "description=Large File Test" API_ENDPOINT
当用户尝试上传大约3GB的大文件时。它始终无法返回此错误: -
卷曲:(55)发送失败:连接中止
我在播放服务器日志中看到的例外情况: -
java.nio.channels.ClosedChannelException
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.cleanUpWriteBuffer(AbstractNioWorker.java:409)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.writeFromUserCode(AbstractNioWorker.java:127)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:99)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:36)
at org.jboss.netty.channel.Channels.write(Channels.java:725)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.doEncode(OneToOneEncoder.java:71)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:59)
at com.typesafe.netty.http.pipelining.HttpPipeliningHandler.handleDownstream(HttpPipeliningHandler.java:87)
at play.core.server.netty.PlayDefaultUpstreamHandler.sendDownstream(PlayDefaultUpstreamHandler.scala:428)
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$play$core$server$netty$PlayDefaultUpstreamHandler$$handle$1$6$$anonfun$13.apply(PlayDefaultUpstr
eamHandler.scala:210) 在
我正在使用Play 2.2.1版本。我已尝试在application.conf中设置最大长度大小,并设置请求超时但这似乎没有帮助。 我在application.conf文件中添加了以下行: -
#Max Length
parsers.text.maxLength = 10024K
#Request Timeout
ws.timeout=1200000
如果其他人遇到类似问题或者知道这里发生了什么,那将是很有帮助的。
答案 0 :(得分:0)
3 GB是要上传的大文件,需要时间。所以增加你的curl的执行时间。也可以添加此参数。
-m 1200000
或
--max-time 1200000
这里的值以秒为单位。