Class DefaultZipContainerDetector
- All Implemented Interfaces:
Serializable,org.apache.tika.config.SelfConfiguring,org.apache.tika.detect.Detector
- Direct Known Subclasses:
StreamingZipContainerDetector
As a first step, it uses commons-compress to detect any archive format supported by commons-compress. If "zip" file is detected, then the ZipContainerDetectors are run to try to identify a subtype.
If an archive format that is not a zip is detected, that mime type is returned.
Finally, if the file is not detected as an archive format, this runs commons-compress' compressor format detector.
For TikaInputStream, file-based detection is used (TikaInputStream
handles spilling to disk automatically if needed).
ZIP Salvaging
When a ZIP file cannot be opened directly (truncated or corrupted), and
ParsingIntent.WILL_PARSE is present in the ParseContext,
this detector will attempt to salvage the file using ZipSalvager.
Salvaging reconstructs a valid ZIP structure from the local file headers.
When salvaging succeeds, Zip.SALVAGED is set to true in the
metadata, and the salvaged ZipFile is stored in
TikaInputStream.getOpenContainer() for reuse by parsers.
Note: If you use parsers directly without this detector (or without
AutoDetectParser), salvaging will not occur
and truncated files may fail to parse.
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefaultZipContainerDetector(List<ZipContainerDetector> zipDetectors) DefaultZipContainerDetector(org.apache.tika.config.ServiceLoader loader) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.tika.mime.MediaTypedetect(org.apache.tika.io.TikaInputStream tis, org.apache.tika.metadata.Metadata metadata, org.apache.tika.parser.ParseContext parseContext)
-
Field Details
-
staticZipDetectors
-
-
Constructor Details
-
DefaultZipContainerDetector
public DefaultZipContainerDetector() -
DefaultZipContainerDetector
public DefaultZipContainerDetector(org.apache.tika.config.ServiceLoader loader) -
DefaultZipContainerDetector
-
-
Method Details
-
detect
public org.apache.tika.mime.MediaType detect(org.apache.tika.io.TikaInputStream tis, org.apache.tika.metadata.Metadata metadata, org.apache.tika.parser.ParseContext parseContext) throws IOException - Specified by:
detectin interfaceorg.apache.tika.detect.Detector- Throws:
IOException
-