Come configurare D7 in modo che i file vengano caricati su un altro server


9

In Drupal 7, il percorso predefinito per il caricamento è impostato nelle opzioni del file system nel percorso del file system pubblico. È possibile specificare un server diverso in questo percorso? Ho un sito Web Drupal 7 che stiamo sviluppando che avrà circa 20k file e mi piacerebbe metterli su un server diverso rispetto al server web. Se non è possibile specificare un server diverso da quello in cui ci sono moduli forniti dall'utente in grado di gestirlo?


Hai completato questa attività.
Cindrella,

Qualche modulo riguardo a questo?
Dushyant Joshi,

Risposte:


8

Faccio qualcosa di molto simile. Se stai eseguendo un'infrastruttura che è in grado di questa configurazione, ti consiglio di offrire una condivisione sul tuo file server (Linux o Windows Server) e montarla nel percorso del file pubblico di Drupal, ovunque la directory pubblica sia per quel particolare campo.

Ad esempio, prendi la seguente configurazione di Samba (che si trova in /etc/samba/smb.conf se esegui un file server basato su Linux). Questo arriva alla fine del file dopo tutte le altre opzioni di configurazione:

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

La valid users sintassi lì dice "consente a questo gruppo di utenti" di accedere a questa condivisione. In questo caso stiamo usando PAM per collegare il nostro file server ad Active Directory e questo particolare gruppo è reso disponibile una volta collegati i due.

Sul tuo server web, qualunque cosa stia ospitando il tuo sito Drupal, vai alla directory dei file pubblici. Dì che il campo particolare di cui hai bisogno per rendere disponibili i file è pubblico: // field_with_20k_files /. Avresti eseguito un comando mount simile in questo modo:

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

Ho gidimpostato qualsiasi processo stia eseguendo il server Web in modo che abbia accesso a quella directory. Molto probabilmente vorrai assicurarti che il servizio web abbia accesso in lettura e scrittura al web server effettivamente in grado di caricare file.


Tutte le risposte sono buone, ma dal momento che abbiamo il controllo dell'infrastruttura, questa risposta è la più semplice e diretta da un punto di vista Drupal da implementare poiché non è necessario installare nuovi moduli. Siamo in un ambiente Windows ma grazie per i passaggi incredibilmente dettagliati forniti!
John81,

In tal caso, in pratica puoi semplicemente saltare la configurazione di Samba ed eseguire il comando mount direttamente usando un nome utente e una password con l'impostazione di autorizzazioni di Windows appropriata. Fatemi sapere se avete domande.
Lester Peabody,

Sto provando a farlo, ma ho problemi. Il mio centro servizi è stato in grado di montare il server Windows, ma non sapevamo dove andare da lì. Ho provato a utilizzare / mount_file_path come directory del file pubblico, ma viene visualizzato un errore che non esiste e non è stato possibile crearlo.
nmillin,

5

Anche un'opzione eccellente sarebbe l' API di archiviazione . Ecco una citazione al riguardo (dalla pagina del progetto del modulo):

... è un framework di basso livello per l'archiviazione e la gestione di file gestiti. Il modulo e tutte le funzioni principali rimarranno agnostici rispetto agli altri moduli al fine di fornire questa funzionalità di basso livello. I sottomoduli sono invitati a consentire all'API di archiviazione di interagire con altri moduli contribuiti, ma non ci deve mai essere un'istruzione dipendenze [] nel file storage.info a meno che non sia necessario per la funzione di basso livello di questo modulo.

Ha le seguenti caratteristiche:

  • Architettura collegabile: può essere estesa per funzionare con qualsiasi servizio di archiviazione.
  • Ridondanza: può essere configurato per archiviare i file in più servizi e modificare istantaneamente quale viene offerto. Ciò significa che il tuo sito non verrà abbattuto da un servizio che presenta problemi .
  • API di controllo accessi: può essere utilizzata per l'e-commerce.
  • Deduplicazione : quando i file identici vengono archiviati nello stesso contenitore, verrà creata solo un'istanza. Ciò consente di risparmiare larghezza di banda e memoria.
  • Integrazione dei campi di file e immagini: abilitare il sottomodulo "core bridge".
  • Modulo di controllo: confronta un file manifest di file con ciò che è registrato nel database per garantire che il record sia accurato.

4

Due moduli che possono anche aiutare in questo settore sono CDN (utilizzato da molti grandi siti, incluso Economist.com) e Amazon S3 (in particolare per l'utilizzo di Amazon S3 invece del file system locale).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.