首页 > 解决方案 > 使用 Jetty 提供大型静态文件

问题描述

我有一个 Jetty 服务器,我想用它来处理大型静态文件。

我编辑了“jetty.xml”,添加了以下内容:

<Set name="handler">
    <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
      <Set name="handlers">
        <Array type="org.eclipse.jetty.server.Handler">
          <Item>
            <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
              <Set name="handlers">
                <Array type="org.eclipse.jetty.server.handler.ContextHandler">
                  <Item>
                    <New class="org.eclipse.jetty.server.handler.ContextHandler">
                      <Set name="contextPath">/files</Set>
                      <Set name="handler">
                        <New class="org.eclipse.jetty.server.handler.ResourceHandler">
                          <Set name="directoriesListed">false</Set>
                          <Set name="resourceBase">/path/to/my/files</Set>
                        </New>
                      </Set>
                    </New>
                  </Item>
                </Array>
              </Set>
            </New>
          </Item>
          <Item>
            <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
          </Item>
        </Array>
      </Set>
    </New>
  </Set>

它适用于小文件,但对于大文件,下载速度太慢,而且很多时候都无法完成。我使用 Jetty 版本 9.2.13,并使用 Web 浏览器作为客户端。

根据“不要使用 ResourceHandler 服务静态文件,使用 DefaultServlet”: https ://github.com/perwendel/spark/issues/316

我想在我的 xml 中使用 DefaultServlet 而不是 ResourceHandler,但我不知道怎么做?

有什么帮助吗?

标签: jetty

解决方案


推荐阅读