Class StandardMetadataLimiterFactory
java.lang.Object
org.apache.tika.metadata.writelimiter.StandardMetadataLimiterFactory
- All Implemented Interfaces:
MetadataWriteLimiterFactory
Standard factory for creating
StandardMetadataLimiter instances.
This factory holds configuration for metadata size limits and field prioritization. It creates limiter instances that enforce these limits when metadata is written.
Size limits prevent memory exhaustion from malicious/pathological files:
maxKeySize- maximum metadata key length in UTF-16 bytesmaxFieldSize- maximum value size per field in UTF-16 bytesmaxTotalEstimatedBytes- total metadata budget in UTF-16 bytesmaxValuesPerField- maximum number of values per multi-valued field
Prioritization fields reduce the likelihood of hitting limits:
includeFields- if non-empty, ONLY these fields are storedexcludeFields- these fields are never storedincludeEmpty- whether to store empty/null values
See StandardMetadataLimiter for details on how sizes are calculated.
- Since:
- Apache Tika 4.0 (renamed from StandardWriteFilterFactory)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintintintintbooleanCreates a new limiter instance.voidsetExcludeFields(Set<String> excludeFields) voidsetIncludeEmpty(boolean includeEmpty) voidsetIncludeFields(Set<String> includeFields) voidsetMaxFieldSize(int maxFieldSize) voidsetMaxKeySize(int maxKeySize) voidsetMaxTotalBytes(int maxTotalBytes) voidsetMaxValuesPerField(int maxValuesPerField) toString()
-
Field Details
-
DEFAULT_MAX_KEY_SIZE
public static final int DEFAULT_MAX_KEY_SIZE- See Also:
-
DEFAULT_MAX_FIELD_SIZE
public static final int DEFAULT_MAX_FIELD_SIZE- See Also:
-
DEFAULT_MAX_TOTAL_BYTES
public static final int DEFAULT_MAX_TOTAL_BYTES- See Also:
-
DEFAULT_MAX_VALUES_PER_FIELD
public static final int DEFAULT_MAX_VALUES_PER_FIELD- See Also:
-
-
Constructor Details
-
StandardMetadataLimiterFactory
public StandardMetadataLimiterFactory()
-
-
Method Details
-
newInstance
Description copied from interface:MetadataWriteLimiterFactoryCreates a new limiter instance. Each call should return a fresh instance since limiters are stateful.- Specified by:
newInstancein interfaceMetadataWriteLimiterFactory- Returns:
- a new MetadataWriteLimiter instance
-
setIncludeFields
-
setExcludeFields
-
setMaxTotalBytes
public void setMaxTotalBytes(int maxTotalBytes) -
setMaxKeySize
public void setMaxKeySize(int maxKeySize) -
setMaxFieldSize
public void setMaxFieldSize(int maxFieldSize) -
setIncludeEmpty
public void setIncludeEmpty(boolean includeEmpty) -
setMaxValuesPerField
public void setMaxValuesPerField(int maxValuesPerField) -
getIncludeFields
-
getExcludeFields
-
getMaxKeySize
public int getMaxKeySize() -
getMaxFieldSize
public int getMaxFieldSize() -
getMaxTotalBytes
public int getMaxTotalBytes() -
getMaxValuesPerField
public int getMaxValuesPerField() -
isIncludeEmpty
public boolean isIncludeEmpty() -
toString
-