Java 如何提高milton webdav服务器的上传和下载速度?

Java 如何提高milton webdav服务器的上传和下载速度?,java,performance,webdav,milton,Java,Performance,Webdav,Milton,我在我的项目中使用milton服务器来支持webdav协议,但有一个问题。 这是我的上传(放置)方法代码: public DavFile upload(InputStream is, String name) { DavFile davFile = null; if (is != null) { File newFile = new File(name); BufferedOutputStream os = null; byte[

我在我的项目中使用milton服务器来支持webdav协议,但有一个问题。 这是我的上传(放置)方法代码:

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
如何在milton服务器中增加InputStream的读取大小?我不能将InputStream更改为任何其他类型,如BufferedInputStream

在我的本地计算机上,上传速度是27KB/s,这太慢了

Milton是一个开源WebDAV库,在Javaservlet中实现,它允许通过WebDAV公开应用程序中的任何数据。下面是一个将Milton、Hibernate和Tomcat一起使用的示例,其中运行在Tomcat上的Milton用于提供基于WebDAV的对Hibernate数据的访问。其他基于Java的WebDAV项目,包括Jigsaw、ApacheJackrabbit和现已退役的Jakarta幻灯片,在构建自己的WebDAV项目时可能会有帮助。”


基于此,如果Milton确实在Tomcat服务器上运行,您可以尝试在Tomcat中启用gzip压缩。

没有理由认为该代码应该快或慢。字节将以网络适配器提供的速率接收,而使用BufferedInputStream则没有帮助,因为字节已经被网络有效地压缩了k适配器

我很惊讶地看到本地上传速度达到27KB/s,我以前从未见过这么慢的东西

我刚刚在我目前正在使用的milton服务器上做了一个快速测试,该服务器对文件进行非常复杂的处理,包括分块和SHA1计算,结果如下: 上传时间=8541ms 大小=82954392字节 带宽=9712491字节/秒

您是如何测试上传速度的,是从客户端还是在服务器上?有时从客户端进行测量时,您会发现上传速度明显较慢,因为客户端在实际上传之前和之后执行的所有PROPFIND请求都有很高的延迟。但这不应成为大文件(例如50Mb或更大)的一个因素

如果使用Win7进行测试,请确保启用了cookie身份验证,否则Windows将每次上载两次,首先不使用凭据,然后再次使用凭据


/Brad

我自己没有尝试过,但我在网上发现了以下评论:“我可以将mp4文件压缩到zip吗?如果我将mp4文件压缩到zip格式,它们的大小将减少到大约三分之一。这是否意味着。。。“。因此,我认为我不理解你的评论。在网络上有很多没有意义的东西……特别是在你所指的页面上,我看到压缩时质量会下降。:D我自己用最近下载的一些文件进行了尝试:原始:993420 KB,压缩:990440 KB。我可以尝试
-9
并获得超过0.3%的收益,但我没有hink这是值得的。也就是说,可能有可能指定mp4的压缩级别,如果您使用与
zip-0
相对应的东西,那么您可能会得到一些可压缩的东西。但是,我想大部分mp4已经被严重压缩了。考虑到CPU速度与磁盘或网络速度的比率,您通常ly可以很好地压缩所有内容。谢谢Brad。问题来自我的本地网络。当我在一台真正的服务器上发布我的web应用程序并在本地计算机上进行测试时,问题就解决了。