首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高milton服务器的上传和下载速度?

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

Stack Overflow用户
提问于 2013-10-02 06:46:21
回答 2查看 1.5K关注 0票数 1

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

代码语言:javascript
复制
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;
}

这是输出:

代码语言:javascript
复制
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,这是太慢了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 3
EN

Stack Overflow用户

发布于 2013-10-02 08:40:50

"Milton是一个在Jakarta中实现的开源WebDAV库,它允许通过WebDAV公开来自应用程序的任何数据。下面是一个使用Milton、Hibernate和Tomcat在一起的示例,其中米尔顿运行在Tomcat上,用于提供基于WebDAV的对Hibernate数据的访问。其他基于Java的WebDAV项目在构建自己的应用程序时可能有用,包括Jigsaw兔子和现已退休的雅加达幻灯片。“

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19131333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档