Package de.uhilger.httpserver.base.actor
Class FileActor
- java.lang.Object
-
- de.uhilger.httpserver.base.actor.FileActor
-
public class FileActor extends Object
- Version:
- 1, 11.06.2021
- Author:
- Ulrich Hilger
-
-
Constructor Summary
Constructors Constructor Description FileActor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
contentRangeHdr(Range range, File file)
Einen Content-Range Header erzeugenprotected RangeGroup
parseRanges(com.sun.net.httpserver.HttpExchange e, File file)
Die Byte-Ranges aus dem Range-Header ermitteln.void
serveFileParts(com.sun.net.httpserver.HttpExchange e, File file)
Einen Teil des Inhalts einer Datei ausliefern Wenn eine Range angefragt wird, hat die Antwort einen Content-Range Header wie folgt:Content-Range: bytes 0-1023/146515 Content-Length: 1024
Wenn mehrere Ranges angefragt werden, hat die Antwort mehrere Content-Range Header als Multipart Response.
-
-
-
Method Detail
-
serveFileParts
public void serveFileParts(com.sun.net.httpserver.HttpExchange e, File file) throws IOException
Einen Teil des Inhalts einer Datei ausliefern Wenn eine Range angefragt wird, hat die Antwort einen Content-Range Header wie folgt:Content-Range: bytes 0-1023/146515 Content-Length: 1024
Wenn mehrere Ranges angefragt werden, hat die Antwort mehrere Content-Range Header als Multipart Response. Multipart Responses fehlen dieser Implementierung noch. (vgl. https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests)- Parameters:
e
- das Objekt mit Methoden zur Untersuchung der Anfrage sowie zum Anfertigen und Senden der Antwortfile
- die Datei, deren Inhalt teilweise ausgeliefert werden soll- Throws:
IOException
- falls etwas schief geht entsteht dieser Fehler
-
parseRanges
protected RangeGroup parseRanges(com.sun.net.httpserver.HttpExchange e, File file)
Die Byte-Ranges aus dem Range-Header ermitteln. Der Range-Header kann unterschiedliche Abschnitte bezeichnen, Beispiele: Range: bytes=200-1000, 2000-6576, 19000- Range: bytes=0-499, -500 (vgl. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range)- Parameters:
e
- das Objekt mit Methoden zur Untersuchung der Anfrage sowie zum Anfertigen und Senden der Antwortfile
- die Datei, deren Inhalt ausgeliefert werden soll- Returns:
- die angefragten Byte-Ranges
-
contentRangeHdr
protected String contentRangeHdr(Range range, File file)
Einen Content-Range Header erzeugen- Parameters:
range
- die Range, aus deren Inhalt der Header erzeugt werden sollfile
- die Datei, die den Inhalt liefert, der vom Header bezeichnet wird- Returns:
- der Inhalt des Content-Range Headers
-
-