使用文件的一部分获取 Tika 的 MIME 类型
Get MIME Type with Tika with part of a file
是否可以使用 Tika 在不加载整个文件的情况下获取 MIME 类型或其他元数据?
我可以编写一个脚本来获得第一个 1MB。我正在考虑这样做以减轻 Tika 和我的服务器上的一些负载。
对于 container-based 格式,Apache Tika 需要整个文件来确定类型。容器格式包括几乎所有基于 zip 文件的内容(Word .docx
、OpenDocumentFormat .odf
、iWorks 等)、任何基于 OLE2 格式的内容(Excel .xls
、韩文、 MSI 等),以及几乎所有的多媒体格式。您通常可以根据文件名和容器类型做出很好的猜测,但要确保您需要处理整个文件以识别内容,从而识别文件类型
其他的,如果Tika能够检测到文件类型,那么只需要前几十KB,甚至通常只需要前几百字节。 (取决于所讨论的格式 - 不同的格式在不同的地方有其可预测的签名)
如果您不需要 Tika 的最佳检测猜测,但可以用稍低的确定性(尤其是 container-based 格式),那么只需将文件的开头提供给 Tika。或者告诉 Tika 只使用 mime 魔术探测器而不使用任何 container-specific 探测器。
是否可以使用 Tika 在不加载整个文件的情况下获取 MIME 类型或其他元数据?
我可以编写一个脚本来获得第一个 1MB。我正在考虑这样做以减轻 Tika 和我的服务器上的一些负载。
对于 container-based 格式,Apache Tika 需要整个文件来确定类型。容器格式包括几乎所有基于 zip 文件的内容(Word .docx
、OpenDocumentFormat .odf
、iWorks 等)、任何基于 OLE2 格式的内容(Excel .xls
、韩文、 MSI 等),以及几乎所有的多媒体格式。您通常可以根据文件名和容器类型做出很好的猜测,但要确保您需要处理整个文件以识别内容,从而识别文件类型
其他的,如果Tika能够检测到文件类型,那么只需要前几十KB,甚至通常只需要前几百字节。 (取决于所讨论的格式 - 不同的格式在不同的地方有其可预测的签名)
如果您不需要 Tika 的最佳检测猜测,但可以用稍低的确定性(尤其是 container-based 格式),那么只需将文件的开头提供给 Tika。或者告诉 Tika 只使用 mime 魔术探测器而不使用任何 container-specific 探测器。