def getFromDirectory(directoryName: String)(implicit resolver: ContentTypeResolver): Route
Allows exposing a directory’s files for
GET requests for its contents.
unmatchedPath (see extractUnmatchedPath) of the
RequestContext is first transformed by the given
pathRewriter function, before being appended to the given directory name to build the final file name.
Note that it’s not required to wrap this directive with
get as this directive will only respond to
The file’s contents will be read using an Akka Streams
Source which automatically uses a pre-configured dedicated blocking io dispatcher, which separates the blocking file operations from the rest of the stream.
Note also that thanks to using Akka Streams internally, the file will be served at the highest speed reachable by the client, and not faster – i.e. the file will not end up being loaded in full into memory before writing it to the client.
import static akka.http.javadsl.server.Directives.getFromDirectory; import static akka.http.javadsl.server.Directives.pathPrefix; final Route route = pathPrefix("tmp", () -> getFromDirectory("/tmp") ); // tests: testRoute(route).run(HttpRequest.GET("/tmp/example")) .assertEntity("example file contents");