Benutzer-Werkzeuge

Webseiten-Werkzeuge


fn2:datei-upload

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
fn2:datei-upload [2019/04/05 10:03] – [MIME-Typ] christophfn2:datei-upload [2021/01/19 10:04] – [Datei-Upload] christoph
Zeile 1: Zeile 1:
-=======Datei-Upload innerhalb der Studenten-Schnittstelle=======+======Datei-Upload======
  
 Der Datei-Upload, der in Zusammenarbeit mit der Universität Göttingen implementiert wurde, soll es Studenten ermöglichen Abgaben vollständig über die Studenten-Schnittstelle (FN2SSS) abwickeln zu können. Eine erste Iteration wurde im Februar 2019 abgeschlossen und ermöglicht den eigentlichen Upload von Dokumenten, sowie deren rudimentäre Verwaltung durch FN2SSS und das PA-Modul. Der Datei-Upload, der in Zusammenarbeit mit der Universität Göttingen implementiert wurde, soll es Studenten ermöglichen Abgaben vollständig über die Studenten-Schnittstelle (FN2SSS) abwickeln zu können. Eine erste Iteration wurde im Februar 2019 abgeschlossen und ermöglicht den eigentlichen Upload von Dokumenten, sowie deren rudimentäre Verwaltung durch FN2SSS und das PA-Modul.
  
-In weiteren Iterationen soll die Benutzung für Studenten und durch das PA verfeinert werdensowie das FN2LM um die Möglichkeit für Lehrende erweitert werden, hochgeladene Dokumente zu begutachten.+Gesteuert wird der Datei-Upload letztlich durch das Feld ''hochladen'' in der Tabelle ''teilprf'', das im PO-Modul für jede Teilprüfung gesetzt werden kann.
  
 =====Nötige Version, Felder und Einträge===== =====Nötige Version, Felder und Einträge=====
Zeile 17: Zeile 17:
 In die tomcat context.xml müssen in dem Abschnitt für allgemeine Parameter In die tomcat context.xml müssen in dem Abschnitt für allgemeine Parameter
  
-    <Parameter description="Pfad fuer Datei-Uploads" name="DATEIUPLOADPATH" value="${catalina.base}/temp/uploads/"/>+    <Parameter description="Pfad fuer Datei-Uploads" name="DATEIUPLOADPATH" value=PFAD/>
  
 und in dem Abschnitt für FN2SSS und in dem Abschnitt für FN2SSS
  
     <!-- Datei-Upload -->     <!-- Datei-Upload -->
-    <Parameter description="Valide MIME-Typen fuer den FileUpload in der SSS, mit Doppelpunkt trennen" name="FN2SSS.UPLOAD_MIME" value="application/pdf"/>+    <Parameter description="Valide MIME-Typen fuer den FileUpload in der SSS, mit Doppelpunkt trennen" name="FN2SSS.UPLOAD_MIME" value=MIME-TYPES/
 +    <Parameter description="Suffix fuer den Pfad von FileUploads in der SSS" name="FN2SSS.UPLOAD_SUFFIXvalue=SUFFIX/>
     <!-- Datei-Upload -->      <!-- Datei-Upload --> 
  
 ergänzt werden. ergänzt werden.
- 
 ====FN2SSS/WEB-INF/web.xml==== ====FN2SSS/WEB-INF/web.xml====
  
Zeile 32: Zeile 32:
  
  <init-param>  <init-param>
- <description>Maximalgröße für POST-Requests über die SSS</description>+ <description>Maximalgröße für POST-Requests über die SSS in byte</description>
  <param-name>REQUEST_SIZE_LIMIT</param-name>  <param-name>REQUEST_SIZE_LIMIT</param-name>
- <param-value>51200</param-value>+ <param-value>???</param-value>
  </init-param>  </init-param>
  <init-param>  <init-param>
- <description>Maximalgröße für einzelne, hochgeladene Dateien</description>+ <description>Maximalgröße für einzelne, hochgeladene Dateien in byte</description>
  <param-name>UPLOAD_MAX_FILE_SIZE</param-name>  <param-name>UPLOAD_MAX_FILE_SIZE</param-name>
- <param-value>104857600</param-value> + <param-value>???</param-value>
- </init-param> +
- <init-param> +
- <description>Suffix fuer den Pfad von FileUploads in der SSS</description> +
- <param-name>UPLOAD_SUFFIX</param-name> +
- <param-value>SSS/</param-value>+
  </init-param>  </init-param>
  
Zeile 70: Zeile 65:
  
 Der Speicherort setzt sich aus Der Speicherort setzt sich aus
-  DATEIUPLOADPATH + UPLOAD_SUFFIX +  DATEIUPLOADPATH + FN2SSS.UPLOAD_SUFFIX 
-zusammen, was mit den obrigen Beispielen zu dem Verzeichnis ${catalina.base}/temp/uploads/SSS/ führt. In den Parametern werden also Strings erwartet, die letztlich auf ein Verzeichnis deuten.+zusammen. Zum Beispiel würde sich mit DATEIUPLOADPATH=''"${catalina.base}/temp/uploads/"'' und FN2SSS.UPLOAD_SUFFIX=''"SSS/"'' der Pfad ''${catalina.base}/temp/uploads/SSS/'' ergeben. In den Parametern werden also Strings erwartet, die letztlich auf ein Verzeichnis deuten (bitte auf die '/' achten).
  
 Beachtet werden muss, dass Beachtet werden muss, dass
Zeile 81: Zeile 76:
 ====MIME-Typ==== ====MIME-Typ====
  
-Mit dem Parameter FN2SSS.UPLOAD_MIME werden für den Upload zulässige MIME-Typen nach [[https://tools.ietf.org/html/rfc2046|RFC2046]] hinterlegt. Wie schon in der Beschreibung erklärt, müssen die einzelnen Types mit Doppelpunkten getrennt werden, z.B. würde ein value von+Mit dem Parameter FN2SSS.UPLOAD_MIME werden für den Upload zulässige MIME-Typen nach [[https://tools.ietf.org/html/rfc2046|RFC2046]] hinterlegt. Wie schon in der Beschreibung erklärt, müssen die einzelnen Typen mit Doppelpunkten getrennt werden, z.B. würde ein value von
   application/pdf:text/plain   application/pdf:text/plain
 für .pdf und .txt (und Ähnliche) stehen. Eine Liste mit den gängigsten MIME-Typen ist [[https://wiki.selfhtml.org/wiki/MIME-Type/Übersicht|hier]] zu finden. für .pdf und .txt (und Ähnliche) stehen. Eine Liste mit den gängigsten MIME-Typen ist [[https://wiki.selfhtml.org/wiki/MIME-Type/Übersicht|hier]] zu finden.
-<WRAP center round alert 60%> +<WRAP center round important 60%> 
-Java kennt von sich aus nur die absoluten Basis MIME-Typen.+Java kennt von sich aus nur einige wenige Basis MIME-Typen. 
 +</WRAP>
 Wenn "exotischere" Typen gewünscht werden, bitten wir um Rücksprache um diese ggf. einfügen zu können. (z.B. zählen schon Word Documente (.doc/.docx) zu den Java-unbekannten Typen) Wenn "exotischere" Typen gewünscht werden, bitten wir um Rücksprache um diese ggf. einfügen zu können. (z.B. zählen schon Word Documente (.doc/.docx) zu den Java-unbekannten Typen)
-</WRAP> 
- 
 ====Begrenzung der Datei/Upload-Größe==== ====Begrenzung der Datei/Upload-Größe====
  
Zeile 109: Zeile 103:
  
  
-=====Hinweis zum Klausur-Upload===== +======Klausur-Upload====== 
-Die folgenden Parameter beziehen sich auf den Datei-Upload in FN2SSS, nicht den Klausur-Upload in FN2LM. +Da der Klausur-Upload weitestgehend die gleiche Infrastruktur wie der Datei-Upload nutzt, können die zugehörigen Parameter leicht abgeleitet werden: 
-Die Parameter für den Klausur-Upload können jedoch leicht daran abgeleitet werden:  + 
-  * Einträge in der in FN2SSS-web.xml müssen statt dessen in die FN2LM-web.xml +Die Parameter-Benamung bleibt gleich, es müssen lediglich die  
-  * Einträge in der context.xml müssen statt dessen mit FN2LM beginnen+  * Einträge in der in FN2SSS-web.xml statt dessen in die FN2LM-web.xml 
 +  * Einträge in der context.xml statt dessen mit FN2LM beginnen 
 + 
 +Selbstverständlich müssen die Werte sinnvoll gewählt werden, z.B. sollte FN2LM.UPLOAD_SUFFIX den Wert "LM/" oder ähnlich haben. 
 + 
 +Da für Klausur-Uploads eine Fächer/Prüfungsspezifische Begrenzung der Anzahl nur wenig Sinn macht, kann die maximale Anzahl der hochladbaren Dateien global in der FN2LM-web.xml mit dem Init-Parameter 'UPLOAD_LIMIT' eingestellt werden: 
 + 
 +  <init-param> 
 +      <description>Anzahl der max. Klausuren, die pro Prüfungszeitraum hoch geladen werden dürfen</description> 
 +      <param-name>UPLOAD_LIMIT</param-name> 
 +      <param-value>3</param-value> 
 +  </init-param> 
 + 
 +Ist der Wert negativ, nicht vorhanden oder nicht als Zahl interpretierbar, können beliebig viele Uploads durchgeführt werden. 
 +=====Verschlüsselung===== 
 +Wenn gewünscht, können die hochgeladenen Klausuren zusätzlich verschlüsselt werden. Dazu muss in der FN2LM-web.xml ein Init-Parameter ENCRYPT_KLAUSUREN mit dem Wert true hinterlegt werden: 
 +  <init-param> 
 +       <description>Sollen hochgeladene Klausuren verschlüsselt werden? (true/false)</description> 
 +       <param-name>ENCRYPT_KLAUSUREN</param-name> 
 +       <param-value>true</param-value> 
 +  </init-param> 
 + 
 +Das verwendete Verfahren kann ebenfalls über Init-Parameter gewählt werden. 
 + 
 +Für die verwendete Transformation der Parameter CIPHER: 
 +  <init-param> 
 +       <description>Welche Transformation soll verwendet werden?</description> 
 +       <param-name>CIPHER</param-name> 
 +       <param-value>############</param-value> 
 +  </init-param> 
 + 
 +Für den verwendeten Schlüssel der Parameter CIPHER_KEY: 
 +  <init-param> 
 +       <description>Verwendeter Schlüssel</description> 
 +       <param-name>CIPHER_KEY</param-name> 
 +       <param-value>############</param-value> 
 +  </init-param> 
 + 
 +Valide Werte können [[https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#impl|hier]] entnommen werden (sind jedoch nicht alle implementiert, bei Bedarf bitte bei uns nachfragen). 
 + 
 +Die Parameter sind **alle optional**. Wenn sie nicht vorhanden sind, werden folgende Defaults genutzt: 
 +^ Parameter        ^    Default-Wert    ^ Effekt                      ^ 
 +| ENCRYPT_KLAUSUREN|       false        | Klausuren werden nicht verschlüsselt | 
 +| CIPHER           |AES/CBC/PKCS5Padding|     AES mit CBC und PKCS5-Padding    | 
 +| CIPHER_KEY           #########      |       Bitte bei Bedarf erfragen      |
fn2/datei-upload.txt · Zuletzt geändert: 2024/04/11 10:16 von jhastedt