src/de/uhilger/neon/fm/FileCatalog.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/neon/fm/FileManipulator.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/neon/fm/package-info.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/neon/fm/FileCatalog.java
@@ -36,13 +36,16 @@ /** * <p>Diese Methode ist als Reaktion auf einen HTTP GET Aufruf an * folgenden URL gedacht und liefert eine Liste des Ordnerinhalts * im JSON-Format</p> * im JSON-Format in der HTTP-Antwort aus</p> * * <pre> * Ordnerinhalt auflisten: * http://localhost:[port]/[kontext]/pfad/zum/ordner/ * </pre> * * Die Methode liefert den Dateiinhalt in der HTTP-Antwort aus, * wenn der URL eine Datei bezeichnet * * @param exchange das Objekt mit Infos zu HTTP-Request, -Response usw. */ public void list(HttpExchange exchange) { src/de/uhilger/neon/fm/FileManipulator.java
@@ -56,11 +56,46 @@ * - Liste mit Dateien kopieren (?copyFrom=quelle): url=ziel, Dateiliste im Body * - Liste mit Dateien verschieben (?moveFrom=quelle): url=Ziel, Dateiliste im Body * - einzelne Datei duplizieren (?duplicate): url=Zieldatei * - einzelne Datei umbenennen (?renameTo=neuer Name): url=Datei oder -odner * - einzelne Datei umbenennen (?renameTo=neuer Name): url=Datei oder -ordner * - Ordner packen (?zip): url=Ordner * - Zip-Datei entpacken (?unzip): url=Datei * </pre> * * * <pre> * <p>HTTP PUT /pfad/zur/datei.txt ueberschreibt eine bestehende Datei mit dem im Body * uebergebenen Inhalt oder legt eine Datei mit diesem Inhalt an</p> * * HTTP PUT /pfad/zum/zielordner?copyFrom=/pfad/zum/quellordner * kopiert die Liste der Datei- oder Ordnernamen im Body * der Anfrage vom Pfad in 'copyFrom' zum Pfad dieser Anfrage. Jede Datei, die * im Ziel bereits existiert, bekommt im Ziel einen neuen Namen mit einer * laufenden Nummer. Bei Ordnern, die im Ziel bereits existieren, bekommt der * betreffende Ordner im Ziel zunaechst einen neuen Namen mit einer laufenden * Nummer, dann wird der Quellordner ans Ziel kopiert. * * HTTP PUT /pfad/zum/zielordner?moveFrom=/pfad/zum/quellordner * verschiebt die Liste der Datei- oder Ordnernamen im * Body der Anfrage vom Pfad in 'moveFrom' zum Pfad dieser Anfrage. Jede Datei, * die im Ziel bereits existiert, bekommt im Ziel einen neuen Namen mit einer * laufenden Nummer. Bei Ordnern, die im Ziel bereits existieren, bekommt der * betreffende Ordner im Ziel zunaechst einen neuen Namen mit einer laufenden * Nummer, dann wird der Quellordner ans Ziel kopiert. * * HTTP PUT /pfad/zur/datei.txt?duplicate legt eine Kopie der Datei an * * HTTP PUT /pfad/zur/datei.txt?renameTo=neuer Name benennt die Datei oder den Ordner um, * sofern der neue Name noch nicht vergeben ist * * HTTP PUT /pfad/zum/ordner?zip' packt den Ordner * * HTTP PUT /pfad/zur/datei.zip?unzip' entpackt eine Datei * * Eine Dateiliste im Body sieht z.B. wie folgt aus * ["test.txt","dok","weitere-datei.bin","bild.jpg"] * * </pre> * * @param exchange das Objekt mit Infos zu HTTP-Request, -Response usw. */ public void change(HttpExchange exchange) { src/de/uhilger/neon/fm/package-info.java
@@ -9,7 +9,7 @@ * Die folgenden HTTP-Aufrufe werden von dieser Package als HTTP-Aufrufe implementiert: * * <pre> * GET (Klasse FileList) * GET (Klasse FileCatalog) * - Dateiinhalt ausliefern (URL ohne Slash am Ende) FileContent + FileList * - Ordnerinhalt auflisten (URL mit Slash am Ende) FileList * @@ -29,51 +29,6 @@ * DELETE (Klasse FileEraser) * - Liste mit Dateien und Ordnern loeschen (rekursiv!) * </pre> * * <p>HTTP-Beispiele</p> * * <p>HTTP GET fuer eine Datei innerhalb dieses Ordners liefert den Dateiinhalt aus</p> * * <p>HTTP GET fuer einen Ordner liefert eine Liste von dessen Inhalt in JSON</p> * * <p>HTTP PUT fuer eine Datei ueberschreibt eine bestehende Datei mit dem im Body * uebergebenen Inhalt oder legt eine Datei mit diesem Inhalt an</p> * * <p>HTTP POST fuer eine Datei legt eine neue Datei mit dem im Body uebergebenen * Inhalt an oder erzeugt eine neue Datei mit einer laufenden Nummer, falls * diese Datei schon existiert</p> * * <p>HTTP POST fuer einen Ordner legt einen neuen Ordner an wenn er noch nicht * existiert oder erzeugt einen HTTP-Fehler 422</p> * * <p>HTTP DELETE loescht die Liste der Dateien und Ordner im Body</p> * * <p>HTTP PUT ?copyFrom=pfad kopiert die Liste der Datei- oder Ordnernamen im Body * der Anfrage vom Pfad in 'copyFrom' zum Pfad dieser Anfrage. Jede Datei, die * im Ziel bereits existiert, bekommt im Ziel einen neuen Namen mit einer * laufenden Nummer. Bei Ordnern, die im Ziel bereits existieren, bekommt der * betreffende Ordner im Ziel zunaechst einen neuen Namen mit einer laufenden * Nummer, dann wird der Quellordner ans Ziel kopiert.</p> * * <p>HTTP PUT ?moveFrom=pfad verschiebt die Liste der Datei- oder Ordnernamen im * Body der Anfrage vom Pfad in 'moveFrom' zum Pfad dieser Anfrage. Jede Datei, * die im Ziel bereits existiert, bekommt im Ziel einen neuen Namen mit einer * laufenden Nummer. Bei Ordnern, die im Ziel bereits existieren, bekommt der * betreffende Ordner im Ziel zunaechst einen neuen Namen mit einer laufenden * Nummer, dann wird der Quellordner ans Ziel kopiert.</p> * * <p>HTTP PUT mit ?duplicate legt eine Kopie der Datei an</p> * * <p>HTTP PUT mit '?renameTo=neuer Name' benennt die Datei oder den Ordner um, * sofern der neue Name noch nicht vergeben ist</p> * * <p>HTTP PUT mit '?zip' packt den Ordner</p> * * <p>HTTP PUT mit '?unzip' entpackt eine Datei</p> * * <p>Namenskonventionen:<br> * Ein Pfad mit Schraegstrich ('/') am Ende bezeichnet einen Ordner<br> * Ein Pfad ohne Schraegstrich ('/') am Ende bezeichnet eine Datei</p> * * */ package de.uhilger.neon.fm;