/** * Die Package de.uhilger.neon.fm stellt eine Schnittstelle via HTTP bereit, * ueber die Dateien verwaltet werden koennen. In dieser Package sind die * Klassen enthalten, die den HTTP-Teil einer solchen Schnittstelle abdecken. * * Fuer die Ausfuehrung der auf diese Weise via HTTP bereitgestellten Dateioperationen * werden die Klassen der Package de.uhilger.fm verwendet. * *
 * GET (Klasse FileList)
 *  - Dateiinhalt ausliefern (URL ohne Slash am Ende) FileContent + FileList
 *  - Ordnerinhalt auflisten (URL mit Slash am Ende) FileList
 * 
 * PUT (Klasse FileManipulator)
 *  - Inhalt einer einzelnen Datei anlegen oder ueberschreiben Writer
 *  - Liste mit Dateien kopieren (?copyFrom) Mover
 *  - Liste mit Dateien verschieben (?moveFrom) Mover
 *  - einzelne Datei duplizieren (?duplicate) Duplicator
 *  - einzelne Datei umbenennen (?renameTo) Renamer
 *  - Ordner packen (?zip) Deflator
 *  - Zip-Datei entpacken (?unzip) Inflator
 * 
 * POST (Klasse FileCreator)
 *  - Datei neu anlegen, unter neuem Namen, wenn schon existent (URL ohne Slash am Ende)
 *  - Ordner anlegen oder Fehler 422, wenn schon existent (URL mit Slash am Ende)
 * 
 * DELETE (Klasse FileEraser)
 *  - Liste mit Dateien und Ordnern loeschen (rekursiv!)  
 * 
* *

HTTP-Beispiele

* *

HTTP GET fuer eine Datei innerhalb dieses Ordners liefert den Dateiinhalt aus

* *

HTTP GET fuer einen Ordner liefert eine Liste von dessen Inhalt in JSON

* *

HTTP PUT fuer eine Datei ueberschreibt eine bestehende Datei mit dem im Body * uebergebenen Inhalt oder legt eine Datei mit diesem Inhalt an

* *

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

* *

HTTP POST fuer einen Ordner legt einen neuen Ordner an wenn er noch nicht * existiert oder erzeugt einen HTTP-Fehler 422

* *

HTTP DELETE loescht die Liste der Dateien und Ordner im Body

* *

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.

* *

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.

* *

HTTP PUT mit ?duplicate legt eine Kopie der Datei an

* *

HTTP PUT mit '?renameTo=neuer Name' benennt die Datei oder den Ordner um, * sofern der neue Name noch nicht vergeben ist

* *

HTTP PUT mit '?zip' packt den Ordner

* *

HTTP PUT mit '?unzip' entpackt eine Datei

* *

Namenskonventionen:
* Ein Pfad mit Schraegstrich ('/') am Ende bezeichnet einen Ordner
* Ein Pfad ohne Schraegstrich ('/') am Ende bezeichnet eine Datei

* * */ package de.uhilger.neon.fm;