[gelöst] Dateien im privaten Ordner können nicht mehr aufgerufen werden, nichtmal vom Admin
am 16.08.2018 - 14:53 Uhr in
Hallo,
ich wollte mit dem Modul "Webform protected Downloads" Dateien nach vorheriger Formulareingabe bereitstellen, die aber im geschützten, privaten Bereich von Drupal gespeichert und somit nicht von außen ohneweiteres zu erreichen sind.
Ich kann Dateien aus dem Formular heraus in den privaten Bereich hochladen, aber nicht einmal der Admin hat Zugriff darauf, um sie anzeigen oder herunterladen zu können. Ich meine, dass das aber schon mal ging.
Desweiteren habe ich einen Bereich in dem ich bis vor kurzem noch Videos, die im geschützten Bereich gespeichert sind, für speziell angemeldete Nutzer abspielen konnte. Das geht nun auch nicht mehr. Die Dateien werden einfach nicht gefunden, weil der Pfad nicht exisiert.
Die vom System generierte URL nach dem Upload der privaten Dateien lautet dann beispielhaft wie folgt:
https://www.beispieldomain.de/system/files/webform/beispieldatei.mp4
Folgende Module habe ich installiert, die m.M.n. etwas damit zutun haben könnten:
- Webform Protected Downloads 7.x-1.1
- Webform 7.x-4.17
- Media 7.x-2.19
- Media Field 7.x-2.19
- Media Internet Sources 7.x-2.19
- Media WYSIWYG 7.x-2.19
- File 7.59
- File Entity 7.x-2.22
- elFinder 7.x-3.x-dev
- Video 7.x-2.13
- Video UI 7.x-2.13
- Wysiwyg 7.x-2.5
- IMCE Wysiwyg API bridge 7.x-1.0
- IMCE 7.x-1.11
- IMCE Directory Manager 7.x-1.2
- IMCE File Path 7.x-1.2
Ich habe vor kurzem das Modul "RESTful 7.x-2.16" installiert, um eine API Schnittstelle zu unserer Seite zu etablieren.
Kann es daran liegen?
Die Einstellungen unter "admin/config/media/file-system" sind wie folgt:
- Pfad des öffentlichen Dateisystems: sites/default/files
- Pfad des privaten Dateisystems: ../private
- Temporäres Verzeichnis: ../temp
- Standard-Downloadmethode: Private Dateien werden durch Drupal ausgeliefert.
Der Ordner "privat", der sich außerhalb des Root-Verzeichnisses befindet, hat volle Schreibrechte, also "CHMOD 777".
Könnt ihr mir hier weiterhelfen?
Vielen dank im Voraus für jeden Tipp oder Hinweis.
Liebe Grüße,
pyretta
Zur Info: Hier ein Link, der meinen Fehler ziemlich exakt beschreibt, aber offensichtlich eine andere Ursache hat, denn ich setze nicht das Modul "CKeditor" direkt ein, sondern über das WYSIWYG Modul. Und dort gibt es die genannte Einstellmöglichkeit leider nicht.
https://webtotum.de/blog/ckeditor-verhindert-private-file-downloads-in-d...
- Anmelden oder Registrieren um Kommentare zu schreiben
Ist denn der Pfad zum
am 16.08.2018 - 16:32 Uhr
Ist denn der Pfad zum privaten Dateisystem unter Konfiguration > medien > Dateisystem richtig gesetzt oder ist der verloren gegangen?
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo wla, danke für deine
am 16.08.2018 - 18:09 Uhr
Hallo wla, danke für deine Antwort.
Ja, da ist noch alles richtig gesetzt: "../private"
Die Einstellungen unter "admin/config/media/file-system" sind wie folgt:
Pfad des öffentlichen Dateisystems: sites/default/files
Pfad des privaten Dateisystems: ../private
Temporäres Verzeichnis: ../temp
Standard-Downloadmethode: Private Dateien werden durch Drupal ausgeliefert.
Wenn ich mich richtig
am 16.08.2018 - 20:34 Uhr
Wenn ich mich richtig erinnere muß der Pfad für das Private-Verzeichnis absolut und nicht relativ sein! Du mußt also den korrekten absoluten Pfad auf dem Server einsetzen, damit das richtig klappt.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ok, dann werd ich das mal
am 17.08.2018 - 16:08 Uhr
Ok, dann werd ich das mal ausprobieren. Danke dir wla.
Aber irgendwie versteh ich nicht, wieso der relative Pfad scheinbar ausreichend ist, um Daten hochzuladen und abzuspeichern, aber zum Abrufen der absolute Pfad benötigt wird. So ganz logisch ist das für mich nicht.
Edit:
Habe gerade ausprobiert den absoluten Pfad zu verwenden, geht aber scheinbar nicht. Ich erhalte dann folgende Fehlermeldung:
Das Verzeichnis "http://sub.serverconfig.com/html/beispiel/drupal_7/private" existiert nicht und konnte nicht erstellt werden.
Schade. Das wäre eine so einfache Lösung gewesen.
Habt ihr noch eine andere Idee, wie ich das lösen könnte?
Ein Serverpfad fängt ja auch
am 17.08.2018 - 16:21 Uhr
Ein Serverpfad fängt ja auch nicht mit http: an. Wenn Dein oberstes Verzeichnis auf dem Server /home heißt, dann sollte auch Dein Serverpfad so beginnen.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ups....Ähm, aber wenn ich
am 17.08.2018 - 17:11 Uhr
Ups....
Ähm, aber wenn ich einfach mit (in meinem Fall) /html/ beginne, woher weiß drupal dann, dass es sich nicht um ein Verzeichnis handelt, das drupal innerhalb seines root Verzeichnisses anlegen oder suchen soll?
Ich möchte das private Verzeichnis in jedem Fall außerhalb des root Verzeichnisses behalten und nicht versehentlich die Ordnerstruktur die außerhalb von Drupal existiert in den root duplizieren.
Bei Konfiguration > Medien >
am 17.08.2018 - 17:29 Uhr
Bei Konfiguration > Medien > Dateisystem > Private-Pfad weiß Drupal, daß es sich um einen Serverpfad handeln muß. Der Pfad wird umgesetzt in public://. Da der Pfad außerhalb des DocumentRoot liegt, kann der Apache Web Server nicht zugreifen, Drupal aber wohl. Drupal wandelt intern den Aufruf wieder so um, daß die richtige Datei geliefert wird, prüft aber dabei auch ob der User die entsprechende Berechtigung hat.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Entschuldigt, dass ich erst
am 07.09.2018 - 09:40 Uhr
Entschuldigt, dass ich erst jetzt antworte. Hatte etwas recherchiert und ausprobiert. Ich glaube jetzt den Ursprung meines Problems gefunden zu haben: elFinder.
Ich hatte zuvor kcfinder als Dateiupload-System eingesetzt, was dann von Drupal plötzlich nicht mehr unterstützt wurde. Dann hatte ich elFinder als Ersatz installiert, was auch prima klappte. Dann wurde auch dieses Upload-System nicht mehr unterstützt. Nach kurzen Recherchen erschien mir das Ablehnen des elFinders von Seiten von Drupal eher auf Differenzen zwischen den jeweiligen Entwicklern zu beruhen, als dass der Code in irgend einer Weise schad- oder fehlerhaft wäre und behielt elFinder als Upload-System. Großer Fehler!
Wenn ich mich zurückbesinne, wann das hier beschriebene Problem etwa entstanden sein könnte, wär es möglich, dass es zeitgleich war mit dem Ausschluss von elFinder. Wenn ich jetzt die vom Video-Tool generierte URL aufrufe, die auf die vom Video-Tool hochgeladenen Videodatei im private-Verzeichnis referenziert, erhalte ich folgende Fehlermeldung:
Fatal error: Class 'elFinderDrupal' not found in /html/beispielseite/drupal/sites/all/modules/elfinder/elfinder.module on line 1076
Ich würde sagen: Case closed!
Zumindest bis auf Weiteres....
Werde dann doch lieber von WYSIWYG direkt auf CKEditor umsteigen und IMCE als Upload-System verwenden.
Wenn das Problem dadurch gelöst wurde, werde ich diesen Beitrag als gelöst markieren und dies nochmal explizit als Lösung präsentieren.
@wla: Nochmals vielen Dank für die guten Tipps! Möglich, dass es auch an dem relativen statt dem absoluten Dateipfad lag, denn ich erhalte die Fehlermeldung erst nach Einsatz des absoluten Dateipfads. Vorher hat Drupal die Datei einfach nicht gefunden.
Lösung
am 07.09.2018 - 16:35 Uhr
Ich hatte mit meiner Vermutung recht.
Also: Falls jemand ebenfalls den elFinder & WYSIWYG anstatt CKEditor direkt installiert und ebenfalls Probleme mit der Anzeige von Dateien hat, die im privaten Ordner gespeichert sind - folgendes brachte in meinem Fall die Lösung:
Wünsche viel Erfolg.