it-swarm.com.de

So konfigurieren Sie D7, damit Dateien auf einen anderen Server hochgeladen werden

In Drupal 7) wird der Standardpfad für das Hochladen in den Dateisystemoptionen im Pfad des öffentlichen Dateisystems festgelegt. Kann in diesem Pfad ein anderer Server angegeben werden? Ich habe ein Drupal 7 Website, die wir entwickeln und die ungefähr 20.000 Dateien enthalten wird, und ich möchte sie auf einem anderen Server als dem Webserver ablegen. Wenn nicht möglich, einen anderen Server als den angegebenen anzugeben Vom Benutzer bereitgestellte Module, die damit umgehen können?

9
John81

Ich mache etwas sehr ähnliches. Wenn Sie eine Infrastruktur ausführen, die diese Konfiguration unterstützt, empfehle ich, eine Freigabe auf Ihrem Dateiserver (Linux oder Windows Server) bereitzustellen und diese einfach im öffentlichen Dateipfad von Drupal bereitzustellen, wo immer sich das öffentliche Verzeichnis für dieses bestimmte Feld befindet.

Nehmen Sie beispielsweise die folgende Samba-Konfiguration (in /etc/samba/smb.conf, wenn Sie einen Linux-basierten Dateiserver ausführen). Dies steht am Ende der Datei nach allen anderen Konfigurationsoptionen:

[data]
    comment = Data directory
    browseable = yes
    writable = yes
    valid users = "@DOMAIN\Domain Admins"
    path = /data
    create mask = 0664
    force create mode = 0664

Das valid usersSyntax dort steht "erlaubt dieser Benutzergruppe", auf diese Freigabe zuzugreifen. In diesem Fall verwenden wir PAM, um unseren Dateiserver mit Active Directory zu verbinden, und diese bestimmte Gruppe wird verfügbar, sobald Sie die beiden verbinden.

Was auch immer auf Ihrem Webserver Ihre Drupal Site) hostet, navigieren Sie zum Verzeichnis der öffentlichen Dateien. Angenommen, das Feld, für das Sie die Dateien verfügbar machen möchten, ist öffentlich: // field_with_20k_files /. You ' d Führen Sie einen ähnlichen Mount-Befehl wie folgt aus:

Sudo mount -t cifs -o user=domainadministrator,uid=domainadministrator,gid=Apache //fileserver/data /path/to/field_with_20k_files

Ich habe gid auf den Prozess eingestellt, auf dem der Webserver ausgeführt wird, damit er Zugriff auf dieses Verzeichnis hat. Höchstwahrscheinlich möchten Sie sicherstellen, dass der Webdienst Lese- und Schreibzugriff auf den Webserver hat und tatsächlich Dateien hochladen kann.

8
Lester Peabody

Eine ausgezeichnete Option wäre auch die Speicher-API . Hier ist ein Zitat dazu (von der Projektseite des Moduls):

... ist ein Low-Level-Framework für die Speicherung und Bereitstellung verwalteter Dateien. Das Modul und alle Kernfunktionen bleiben gegenüber anderen Modulen unabhängig, um diese Funktionalität auf niedriger Ebene bereitzustellen. Submodule ermöglichen es der Speicher-API, mit anderen bereitgestellten Modulen zu interagieren. Die Datei storage.info darf jedoch niemals eine dependencies [] -Anweisung enthalten, es sei denn, dies ist für die Low-Level-Funktion dieses Moduls erforderlich.

Es hat die folgenden Funktionen:

  • Steckbare Architektur - Sie kann erweitert werden, um mit jedem Speicherdienst zu arbeiten.
  • Redundanz - Sie kann so konfiguriert werden, dass Ihre Dateien in mehreren Diensten gespeichert werden und sofort geändert wird, welcher Dienst bereitgestellt wird. Dies bedeutet, dass Ihre Site nicht von einem Dienst mit Problemen heruntergefahren wird.
  • Zugriffssteuerungs-API - kann für den E-Commerce verwendet werden.
  • Deduplizierung - Wenn identische Dateien im selben Container gespeichert werden, wird nur eine Instanz erstellt. Dies spart Bandbreite und Speicherplatz.
  • Datei- und Bildfeldintegration - Aktivieren Sie das Untermodul "Core Bridge".
  • Überwachungsmodul - vergleicht ein Manifest von Dateien mit dem, was in der Datenbank aufgezeichnet ist, um sicherzustellen, dass die Aufzeichnung korrekt ist.
5
ropic

Zwei Module, die auch in diesem Bereich hilfreich sein können, sind CDN (wird von vielen großen Websites verwendet, einschließlich Economist.com) und Amazon S (speziell für die Verwendung von Amazon S3 anstelle des lokalen Dateisystems).

4
Patrick Kenny