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