Class DefaultHttpDataFactory
java.lang.Object
io.netty.handler.codec.http.multipart.DefaultHttpDataFactory
- All Implemented Interfaces:
HttpDataFactory
Default factory giving
Attribute
and FileUpload
according to constructor.
According to the constructor, Attribute
and FileUpload
can be:
- MemoryAttribute, DiskAttribute or MixedAttribute
- MemoryFileUpload, DiskFileUpload or MixedFileUpload
for (InterfaceHttpData httpData: decoder.getBodyHttpDatas()) {
httpData.release();
factory.removeHttpDataFromClean(request, httpData);
}
factory.cleanAllHttpData();
decoder.destroy();
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private Charset
private final boolean
private boolean
private long
static final long
Proposed default MAXSIZE = -1 as UNLIMITEDprivate long
static final long
Proposed default MINSIZE as 16 KB.private final Map
<HttpRequest, List<HttpData>> Keep allHttpData
s until cleaning methods are called.private final boolean
-
Constructor Summary
ConstructorsConstructorDescriptionHttpData will be in memory if less than default size (16KB).DefaultHttpDataFactory
(boolean useDisk) HttpData will be always on Disk if useDisk is True, else always in Memory if FalseDefaultHttpDataFactory
(boolean useDisk, Charset charset) DefaultHttpDataFactory
(long minSize) HttpData will be on Disk if the size of the file is greater than minSize, else it will be in memory.DefaultHttpDataFactory
(long minSize, Charset charset) DefaultHttpDataFactory
(Charset charset) -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
checkHttpDataSize
(HttpData data) Utility methodvoid
Remove all InterfaceHttpData from virtual File storage from clean list for all requestsvoid
void
cleanRequestHttpData
(HttpRequest request) Remove all InterfaceHttpData from virtual File storage from clean list for the requestvoid
cleanRequestHttpDatas
(HttpRequest request) createAttribute
(HttpRequest request, String name) createAttribute
(HttpRequest request, String name, long definedSize) createAttribute
(HttpRequest request, String name, String value) createFileUpload
(HttpRequest request, String name, String filename, String contentType, String contentTransferEncoding, Charset charset, long size) getList
(HttpRequest request) void
removeHttpDataFromClean
(HttpRequest request, InterfaceHttpData data) Remove the given InterfaceHttpData from clean list (will not delete the file, except if the file is still a temporary one as setup at construction)void
setBaseDir
(String baseDir) Override globalDiskAttribute.baseDirectory
andDiskFileUpload.baseDirectory
values.void
setDeleteOnExit
(boolean deleteOnExit) Override globalDiskAttribute.deleteOnExitTemporaryFile
andDiskFileUpload.deleteOnExitTemporaryFile
values.void
setMaxLimit
(long maxSize) To set a max size limitation on fields.
-
Field Details
-
MINSIZE
public static final long MINSIZEProposed default MINSIZE as 16 KB.- See Also:
-
MAXSIZE
public static final long MAXSIZEProposed default MAXSIZE = -1 as UNLIMITED- See Also:
-
useDisk
private final boolean useDisk -
checkSize
private final boolean checkSize -
minSize
private long minSize -
maxSize
private long maxSize -
charset
-
baseDir
-
deleteOnExit
private boolean deleteOnExit -
requestFileDeleteMap
Keep allHttpData
s until cleaning methods are called. We need to useIdentityHashMap
because different requests may be equal. SeeDefaultHttpRequest.hashCode()
andDefaultHttpRequest.equals(java.lang.Object)
. Similarly, when removing data items, we need to check their identities because different data items may be equal.
-
-
Constructor Details
-
DefaultHttpDataFactory
public DefaultHttpDataFactory()HttpData will be in memory if less than default size (16KB). The type will be Mixed. -
DefaultHttpDataFactory
-
DefaultHttpDataFactory
public DefaultHttpDataFactory(boolean useDisk) HttpData will be always on Disk if useDisk is True, else always in Memory if False -
DefaultHttpDataFactory
-
DefaultHttpDataFactory
public DefaultHttpDataFactory(long minSize) HttpData will be on Disk if the size of the file is greater than minSize, else it will be in memory. The type will be Mixed. -
DefaultHttpDataFactory
-
-
Method Details
-
setBaseDir
Override globalDiskAttribute.baseDirectory
andDiskFileUpload.baseDirectory
values.- Parameters:
baseDir
- directory path where to store disk attributes and file uploads.
-
setDeleteOnExit
public void setDeleteOnExit(boolean deleteOnExit) Override globalDiskAttribute.deleteOnExitTemporaryFile
andDiskFileUpload.deleteOnExitTemporaryFile
values.- Parameters:
deleteOnExit
- true if temporary files should be deleted with the JVM, false otherwise.
-
setMaxLimit
public void setMaxLimit(long maxSize) Description copied from interface:HttpDataFactory
To set a max size limitation on fields. Exceeding it will generate an ErrorDataDecoderException. A value of -1 means no limitation (default).- Specified by:
setMaxLimit
in interfaceHttpDataFactory
-
getList
- Returns:
- the associated list of
HttpData
for the request
-
createAttribute
- Specified by:
createAttribute
in interfaceHttpDataFactory
- Parameters:
request
- associated request- Returns:
- a new Attribute with no value
-
createAttribute
- Specified by:
createAttribute
in interfaceHttpDataFactory
- Parameters:
request
- associated requestname
- name of the attributedefinedSize
- defined size from request for this attribute- Returns:
- a new Attribute with no value
-
checkHttpDataSize
Utility method -
createAttribute
- Specified by:
createAttribute
in interfaceHttpDataFactory
- Parameters:
request
- associated request- Returns:
- a new Attribute
-
createFileUpload
public FileUpload createFileUpload(HttpRequest request, String name, String filename, String contentType, String contentTransferEncoding, Charset charset, long size) - Specified by:
createFileUpload
in interfaceHttpDataFactory
- Parameters:
request
- associated requestsize
- the size of the Uploaded file- Returns:
- a new FileUpload
-
removeHttpDataFromClean
Description copied from interface:HttpDataFactory
Remove the given InterfaceHttpData from clean list (will not delete the file, except if the file is still a temporary one as setup at construction)- Specified by:
removeHttpDataFromClean
in interfaceHttpDataFactory
- Parameters:
request
- associated request
-
cleanRequestHttpData
Description copied from interface:HttpDataFactory
Remove all InterfaceHttpData from virtual File storage from clean list for the request- Specified by:
cleanRequestHttpData
in interfaceHttpDataFactory
- Parameters:
request
- associated request
-
cleanAllHttpData
public void cleanAllHttpData()Description copied from interface:HttpDataFactory
Remove all InterfaceHttpData from virtual File storage from clean list for all requests- Specified by:
cleanAllHttpData
in interfaceHttpDataFactory
-
cleanRequestHttpDatas
- Specified by:
cleanRequestHttpDatas
in interfaceHttpDataFactory
-
cleanAllHttpDatas
public void cleanAllHttpDatas()- Specified by:
cleanAllHttpDatas
in interfaceHttpDataFactory
-