【问题标题】:How to add a custom MIME type and override a default extension pattern?如何添加自定义 MIME 类型并覆盖默认扩展模式?
【发布时间】:2013-02-07 14:49:18
【问题描述】:

我正在尝试向 Apache Tika 添加自定义 mime 类型。

我在org.apache.tika.mime 中有以下custom-mimetypes.xml 文档:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info>
    <mime-type type="text/stringtemplategroup">
        <glob pattern="*.stg"/>
    </mime-type>
    <mime-type type="text/stringtemplate">
        <glob pattern="*.st"/>
    </mime-type>
</mime-info>

我收到关于 Conflicting extension pattern .st 的错误:

Caused by: org.apache.tika.mime.MimeTypeException: Conflicting extension pattern: .st
    at org.apache.tika.mime.MimeTypesReader.startElement(MimeTypesReader.java:166)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)

如何覆盖*.st 扩展的默认条目并让它使用我自己的?

【问题讨论】:

  • 你修好了吗?我面临同样的问题。如果你知道了,请告诉我
  • 我放弃了 TIka 是一个 PITA,因为一些非常糟糕的设计决定将所有内容紧密耦合到 File 对象而不是 InputStream 所以在 Google App Engine 上使用非常困难,我有分叉和修改太多东西以减少痛苦。我最终为我在应用程序中支持的少数类型编写了自己的幻数分类器。 Tika 是个好主意,但实现起来很糟糕。
  • 好吧,那我运气不好
  • 真的很惭愧,因为我的开发团队中的人分叉了 tika 并编写了很多它,以便从更多的流模型中工作,而不是与 File 保持耦合。遗憾的是,由于他们工作的公司的恐惧,他们不被允许推迟该项目,而那是 3 年或更多年前的事了!

标签: java mime apache-tika


【解决方案1】:

你好像是need to add 一个magic 有优先级的标签

<mime-type type="text/stringtemplate">
    <magic priority="50">
        <!-- some match pattern -->
        <!-- <match value="[some characters]" type="string" offset="0" /> -->
    </magic>
    <glob pattern="*.st"/>
</mime-type>

【讨论】:

  • 感谢您提供的信息,但最终它并没有修复与File 的紧密耦合,即使这可行。
  • 感谢您的赏金,非常感谢。
  • 感谢您抽出宝贵时间帮助those that might find this
  • :) 很有趣,当 SO 更改其 UI 时,我错误地回答了这个问题。在我发布答案之前,我没有意识到这是一个旧的。它引起了我的注意,因为我在几年前将 Quark Xpress 文件的自定义幻数添加到充当 Apple 文件服务器的 Linux 机器中:p。
猜你喜欢
  • 2017-06-28
  • 2011-08-10
  • 2022-11-18
  • 1970-01-01
  • 2020-05-11
  • 2019-05-09
  • 1970-01-01
  • 2012-01-19
  • 2023-03-04
相关资源
最近更新 更多