在我的项目中,我使用milton服务器来支持webdav协议,但是有一个问题。这是我的上传(PUT)方法代码:
public DavFile upload(InputStream is, String name) {
DavFile davFile = null;
if (is != null) {
File newFile = new File(name);
BufferedOutputStream os = null;
byte[] buffer = new byte[1024 * 1024];
int size;
try {
os = new BufferedOutputStream(new FileOutputStream(newFile, false), buffer.length);
while ((size = is.read(buffer)) > 0) {
System.out.println("Log: " + name + " | " + size);
os.write(buffer, 0, size);
}
Util.closeOutputStream(os);
davFile = new DavFile(newFilePath);
} catch (Exception ex) {
Util.writeLog(ex);
} finally {
Util.closeInputStream(is);
Util.closeOutputStream(os);
}
}
return davFile;
}这是输出:
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 7834
Log: 722267_119335884931029_2021941220_n.mp4 | 3145如何在弥尔顿服务器中增加InputStream的读取大小?我不能将InputStream更改为任何其他类型,如BufferedInputStream!
在我的本地电脑上传速度是27 my /s,这是太慢了!
发布于 2013-10-02 21:39:53
没有理由认为该代码应该是快的还是慢的。字节将以网络适配器提供的速率接收,使用BufferedInputStream不会有帮助,因为字节已经被网络适配器有效地接收了。
我很惊讶看到本地上传速度为27‘m/s,我从来没有见过这么慢的东西。
我刚刚在米尔顿服务器上做了一个快速测试,这个服务器对文件进行了非常复杂的处理,包括分块和SHA1计算,并给出了以下结果:上传time=8541ms SIZE=82,954,392bytes bandwidth= 9,712,491字节/秒
你是从客户端还是在服务器上测试上传速度的?您可以得到明显的缓慢上传,有时从客户端测量,因为所有PROPFIND请求的高延迟,客户端在实际上传之前和之后。但是,这不应该成为大型文件的一个因素(例如50 or或更多)。
如果您正在使用Win7进行测试,请确保启用了cookie身份验证,否则Windows将完成每次上载两次,首先没有凭据,然后再使用凭据。
/Brad
发布于 2013-10-02 08:40:50
"Milton是一个在Jakarta中实现的开源WebDAV库,它允许通过WebDAV公开来自应用程序的任何数据。下面是一个使用Milton、Hibernate和Tomcat在一起的示例,其中米尔顿运行在Tomcat上,用于提供基于WebDAV的对Hibernate数据的访问。其他基于Java的WebDAV项目在构建自己的应用程序时可能有用,包括Jigsaw兔子和现已退休的雅加达幻灯片。“
基于此,如果Milton确实运行在tomcat服务器上,您可以尝试在Tomcat中启用gzip压缩。
https://stackoverflow.com/questions/19131333
复制相似问题