Dateiverwaltung fuer neon
ulrich
2024-11-10 aed034f287a6481b69a8648d1ce7dd81d3c68b57
commit | author | age
aed034 1 /**
U 2  * Die Package de.uhilger.neon.fm stellt eine Schnittstelle via HTTP bereit, 
3  * ueber die Dateien verwaltet werden koennen. In dieser Package sind die 
4  * Klassen enthalten, die den HTTP-Teil einer solchen Schnittstelle abdecken.
5  * 
6  * Fuer die Ausfuehrung der auf diese Weise via HTTP bereitgestellten Dateioperationen 
7  * werden die Klassen der Package de.uhilger.fm verwendet.
8  * 
9  * <pre>
10  * GET (Klasse FileList)
11  *  - Dateiinhalt ausliefern (URL ohne Slash am Ende) FileContent + FileList
12  *  - Ordnerinhalt auflisten (URL mit Slash am Ende) FileList
13  * 
14  * PUT (Klasse FileManipulator)
15  *  - Inhalt einer einzelnen Datei anlegen oder ueberschreiben Writer
16  *  - Liste mit Dateien kopieren (?copyFrom) Mover
17  *  - Liste mit Dateien verschieben (?moveFrom) Mover
18  *  - einzelne Datei duplizieren (?duplicate) Duplicator
19  *  - einzelne Datei umbenennen (?renameTo) Renamer
20  *  - Ordner packen (?zip) Deflator
21  *  - Zip-Datei entpacken (?unzip) Inflator
22  * 
23  * POST (Klasse FileCreator)
24  *  - Datei neu anlegen, unter neuem Namen, wenn schon existent (URL ohne Slash am Ende)
25  *  - Ordner anlegen oder Fehler 422, wenn schon existent (URL mit Slash am Ende)
26  * 
27  * DELETE (Klasse FileEraser)
28  *  - Liste mit Dateien und Ordnern loeschen (rekursiv!)  
29  * </pre>
30  * 
31  * <p>HTTP-Beispiele</p>
32  *
33  * <p>HTTP GET fuer eine Datei innerhalb dieses Ordners liefert den Dateiinhalt aus</p>
34  *
35  * <p>HTTP GET fuer einen Ordner liefert eine Liste von dessen Inhalt in JSON</p>
36  *
37  * <p>HTTP PUT fuer eine Datei ueberschreibt eine bestehende Datei mit dem im Body
38  * uebergebenen Inhalt oder legt eine Datei mit diesem Inhalt an</p>
39  *
40  * <p>HTTP POST fuer eine Datei legt eine neue Datei mit dem im Body uebergebenen
41  * Inhalt an oder erzeugt eine neue Datei mit einer laufenden Nummer, falls
42  * diese Datei schon existiert</p>
43  *
44  * <p>HTTP POST fuer einen Ordner legt einen neuen Ordner an wenn er noch nicht
45  * existiert oder erzeugt einen HTTP-Fehler 422</p>
46  *
47  * <p>HTTP DELETE loescht die Liste der Dateien und Ordner im Body</p>
48  *
49  * <p>HTTP PUT ?copyFrom=pfad kopiert die Liste der Datei- oder Ordnernamen im Body
50  * der Anfrage vom Pfad in 'copyFrom' zum Pfad dieser Anfrage. Jede Datei, die
51  * im Ziel bereits existiert, bekommt im Ziel einen neuen Namen mit einer
52  * laufenden Nummer. Bei Ordnern, die im Ziel bereits existieren, bekommt der
53  * betreffende Ordner im Ziel zunaechst einen neuen Namen mit einer laufenden
54  * Nummer, dann wird der Quellordner ans Ziel kopiert.</p>
55  *
56  * <p>HTTP PUT ?moveFrom=pfad verschiebt die Liste der Datei- oder Ordnernamen im
57  * Body der Anfrage vom Pfad in 'moveFrom' zum Pfad dieser Anfrage. Jede Datei,
58  * die im Ziel bereits existiert, bekommt im Ziel einen neuen Namen mit einer
59  * laufenden Nummer. Bei Ordnern, die im Ziel bereits existieren, bekommt der
60  * betreffende Ordner im Ziel zunaechst einen neuen Namen mit einer laufenden
61  * Nummer, dann wird der Quellordner ans Ziel kopiert.</p>
62  *
63  * <p>HTTP PUT mit ?duplicate legt eine Kopie der Datei an</p>
64  *
65  * <p>HTTP PUT mit '?renameTo=neuer Name' benennt die Datei oder den Ordner um,
66  * sofern der neue Name noch nicht vergeben ist</p>
67  *
68  * <p>HTTP PUT mit '?zip' packt den Ordner</p>
69  *
70  * <p>HTTP PUT mit '?unzip' entpackt eine Datei</p>
71  * 
72  * <p>Namenskonventionen:<br>
73  * Ein Pfad mit Schraegstrich ('/') am Ende bezeichnet einen Ordner<br>
74  * Ein Pfad ohne Schraegstrich ('/') am Ende bezeichnet eine Datei</p> * 
75  * 
76  */
77 package de.uhilger.neon.fm;