Package com.linecorp.armeria.server.file
Class HttpFileBuilder
java.lang.Object
com.linecorp.armeria.server.file.AbstractHttpFileBuilder
com.linecorp.armeria.server.file.HttpFileBuilder
public abstract class HttpFileBuilder extends AbstractHttpFileBuilder
Builds an
HttpFile
from a file, a classpath resource or an HttpData
.
// Build from a file.
HttpFile f = HttpFile.builder(Paths.get("/var/www/index.html"))
.lastModified(false)
.setHeader(HttpHeaderNames.CONTENT_LANGUAGE, "en-US")
.build();
// Build from a classpath resource.
HttpFile f = HttpFile.builder(MyClass.class.getClassLoader(), "/foo.txt.gz")
.setHeader(HttpHeaderNames.CONTENT_ENCODING, "gzip")
.build();
// Build from an HttpData.
HttpFile f = HttpFile.builder(HttpData.ofUtf8("content"), System.currentTimeMillis())
.entityTag((pathOrUri, attrs) -> "myCustomEntityTag")
.build();
-
Method Summary
Modifier and Type Method Description HttpFileBuilder
addHeader(CharSequence name, Object value)
Adds the specified HTTP header.HttpFileBuilder
addHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)
Adds the specified HTTP headers.HttpFileBuilder
autoDetectedContentType(boolean contentTypeAutoDetectionEnabled)
Sets whether to set the"content-type"
header automatically based on the extension of the file.abstract HttpFile
build()
Returns a newly createdHttpFile
with the properties configured so far.HttpFileBuilder
cacheControl(CacheControl cacheControl)
Sets the"cache-control"
header.HttpFileBuilder
cacheControl(CharSequence cacheControl)
Sets the"cache-control"
header.HttpFileBuilder
clock(Clock clock)
Sets theClock
that provides the current date and time.HttpFileBuilder
contentType(MediaType contentType)
Sets the"content-type"
header.HttpFileBuilder
contentType(CharSequence contentType)
Sets the"content-type"
header.HttpFileBuilder
date(boolean dateEnabled)
Sets whether to set the"date"
header automatically.HttpFileBuilder
entityTag(boolean enabled)
Sets whether to set the"etag"
header automatically based on the path and attributes of the file.HttpFileBuilder
entityTag(BiFunction<String,HttpFileAttributes,String> entityTagFunction)
Sets the function which generates the entity tag that's used for setting the"etag"
header automatically.HttpFileBuilder
lastModified(boolean lastModifiedEnabled)
Sets whether to set the"last-modified"
header automatically.HttpFileBuilder
setHeader(CharSequence name, Object value)
Sets the specified HTTP header.HttpFileBuilder
setHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)
Sets the specified HTTP headers.Methods inherited from class com.linecorp.armeria.server.file.AbstractHttpFileBuilder
buildHeaders, clock, entityTagFunction, isContentTypeAutoDetectionEnabled, isDateEnabled, isLastModifiedEnabled
-
Method Details
-
build
Returns a newly createdHttpFile
with the properties configured so far. If this builder was created withHttpFile.builder(HttpData)
orHttpFile.builder(HttpData, long)
, the returned instance will always be anAggregatedHttpFile
. -
clock
Description copied from class:AbstractHttpFileBuilder
Sets theClock
that provides the current date and time. By default,Clock.systemUTC()
is used.- Overrides:
clock
in classAbstractHttpFileBuilder
-
date
Description copied from class:AbstractHttpFileBuilder
Sets whether to set the"date"
header automatically. By default, the"date"
header is set automatically.- Overrides:
date
in classAbstractHttpFileBuilder
-
lastModified
Description copied from class:AbstractHttpFileBuilder
Sets whether to set the"last-modified"
header automatically. By default, the"last-modified"
is set automatically.- Overrides:
lastModified
in classAbstractHttpFileBuilder
-
autoDetectedContentType
Description copied from class:AbstractHttpFileBuilder
Sets whether to set the"content-type"
header automatically based on the extension of the file. By default, the"content-type"
header is set automatically.- Overrides:
autoDetectedContentType
in classAbstractHttpFileBuilder
-
entityTag
Description copied from class:AbstractHttpFileBuilder
Sets whether to set the"etag"
header automatically based on the path and attributes of the file. By default, the"etag"
header is set automatically. UseAbstractHttpFileBuilder.entityTag(BiFunction)
to customize how an entity tag is generated.- Overrides:
entityTag
in classAbstractHttpFileBuilder
-
entityTag
Description copied from class:AbstractHttpFileBuilder
Sets the function which generates the entity tag that's used for setting the"etag"
header automatically.- Overrides:
entityTag
in classAbstractHttpFileBuilder
- Parameters:
entityTagFunction
- the entity tag function that generates the entity tag, ornull
to disable setting the"etag"
header.
-
addHeader
Description copied from class:AbstractHttpFileBuilder
Adds the specified HTTP header.- Overrides:
addHeader
in classAbstractHttpFileBuilder
-
addHeaders
public HttpFileBuilder addHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)Description copied from class:AbstractHttpFileBuilder
Adds the specified HTTP headers.- Overrides:
addHeaders
in classAbstractHttpFileBuilder
-
setHeader
Description copied from class:AbstractHttpFileBuilder
Sets the specified HTTP header.- Overrides:
setHeader
in classAbstractHttpFileBuilder
-
setHeaders
public HttpFileBuilder setHeaders(Iterable<? extends Map.Entry<? extends CharSequence,?>> headers)Description copied from class:AbstractHttpFileBuilder
Sets the specified HTTP headers.- Overrides:
setHeaders
in classAbstractHttpFileBuilder
-
contentType
Description copied from class:AbstractHttpFileBuilder
Sets the"content-type"
header. This method is a shortcut for:builder.autoDetectedContentType(false); builder.setHeader(HttpHeaderNames.CONTENT_TYPE, contentType);
- Overrides:
contentType
in classAbstractHttpFileBuilder
-
contentType
Description copied from class:AbstractHttpFileBuilder
Sets the"content-type"
header. This method is a shortcut for:builder.autoDetectedContentType(false); builder.setHeader(HttpHeaderNames.CONTENT_TYPE, contentType);
- Overrides:
contentType
in classAbstractHttpFileBuilder
-
cacheControl
Description copied from class:AbstractHttpFileBuilder
Sets the"cache-control"
header. This method is a shortcut for:builder.setHeader(HttpHeaderNames.CACHE_CONTROL, cacheControl);
- Overrides:
cacheControl
in classAbstractHttpFileBuilder
-
cacheControl
Description copied from class:AbstractHttpFileBuilder
Sets the"cache-control"
header. This method is a shortcut for:builder.setHeader(HttpHeaderNames.CACHE_CONTROL, cacheControl);
- Overrides:
cacheControl
in classAbstractHttpFileBuilder
-