Class DefaultZipContainerDetector
- java.lang.Object
-
- org.apache.tika.detect.zip.DefaultZipContainerDetector
-
- All Implemented Interfaces:
Serializable,org.apache.tika.detect.Detector
- Direct Known Subclasses:
StreamingZipContainerDetector
public class DefaultZipContainerDetector extends Object implements org.apache.tika.detect.Detector
This class is designed to detect subtypes of zip-based file formats. For the sake of efficiency, it also detects archive and compressor formats via commons-compress.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.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DefaultZipContainerDetector()DefaultZipContainerDetector(List<ZipContainerDetector> zipDetectors)DefaultZipContainerDetector(org.apache.tika.config.ServiceLoader loader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.tika.mime.MediaTypedetect(InputStream input, org.apache.tika.metadata.Metadata metadata)intgetMarkLimit()voidsetMarkLimit(int markLimit)If this is less than 0 and a TikaInputStream is used, the file will be spooled to disk, and detection will run on the full file.
-
-
-
Constructor Detail
-
DefaultZipContainerDetector
public DefaultZipContainerDetector()
-
DefaultZipContainerDetector
public DefaultZipContainerDetector(org.apache.tika.config.ServiceLoader loader)
-
DefaultZipContainerDetector
public DefaultZipContainerDetector(List<ZipContainerDetector> zipDetectors)
-
-
Method Detail
-
setMarkLimit
@Field public void setMarkLimit(int markLimit)
If this is less than 0 and a TikaInputStream is used, the file will be spooled to disk, and detection will run on the full file.If this is greater than 0 and a TikaInputStream is used, this will try detection on the stream up to the markLimit, and if that is greater than the length of the file, the streaming result will be returned. If the BoundedInputStream hits its bound during detection, the file will be spooled to disk, and detection will be run on the full file.
If a non-TikaInputStream is used, detection will only work up to the
markLimit, potentially leading to lack of precision in zip-based file detection.- Parameters:
markLimit- mark limit for streaming detection
-
getMarkLimit
public int getMarkLimit()
-
detect
public org.apache.tika.mime.MediaType detect(InputStream input, org.apache.tika.metadata.Metadata metadata) throws IOException
- Specified by:
detectin interfaceorg.apache.tika.detect.Detector- Throws:
IOException
-
-