Class PartialFileServer


  • public class PartialFileServer
    extends java.lang.Object
    Die Klasse PartialFileServer fuehrt die zur Auslieferung von Teilen einer Datei noetigen Handlungen aus.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.String contentRangeHdr​(Range range, java.io.File file)
      Einen Content-Range Header erzeugen
      protected RangeGroup parseRanges​(com.sun.net.httpserver.HttpExchange e, java.io.File file)
      Die Byte-Ranges aus dem Range-Header ermitteln.
      void serveFileParts​(com.sun.net.httpserver.HttpExchange e, java.io.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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PartialFileServer

        public PartialFileServer()
    • Method Detail

      • serveFileParts

        public void serveFileParts​(com.sun.net.httpserver.HttpExchange e,
                                   java.io.File file)
                            throws java.io.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 Antwort
        file - die Datei, deren Inhalt teilweise ausgeliefert werden soll
        Throws:
        java.io.IOException - falls etwas schief geht entsteht dieser Fehler
      • parseRanges

        protected RangeGroup parseRanges​(com.sun.net.httpserver.HttpExchange e,
                                         java.io.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 Antwort
        file - die Datei, deren Inhalt ausgeliefert werden soll
        Returns:
        die angefragten Byte-Ranges
      • contentRangeHdr

        protected java.lang.String contentRangeHdr​(Range range,
                                                   java.io.File file)
        Einen Content-Range Header erzeugen
        Parameters:
        range - die Range, aus deren Inhalt der Header erzeugt werden soll
        file - die Datei, die den Inhalt liefert, der vom Header bezeichnet wird
        Returns:
        der Inhalt des Content-Range Headers