Jak skonfigurować D7, aby pliki były przesyłane na inny serwer

9

W Drupal 7 domyślna ścieżka przesyłania jest ustawiona w opcjach Systemu plików w Ścieżce publicznego systemu plików. Czy w tej ścieżce można określić inny serwer? Mam stronę internetową Drupal 7, którą rozwijamy, która będzie miała około 20 000 plików i chciałbym umieścić je na innym serwerze niż serwer WWW. Jeśli nie jest możliwe określenie innego serwera, niż czy istnieją moduły udostępnione przez użytkowników, które mogą to obsłużyć?

John81
źródło
Czy wykonałeś to zadanie?
Cindrella,
Jakiś moduł dotyczący tego?
Dushyant Joshi

Odpowiedzi:

8

Robię coś bardzo podobnego. Jeśli korzystasz z infrastruktury obsługującej tę konfigurację, polecam udostępnienie udziału na serwerze plików (Linux lub Windows Server) i po prostu zamontuj go w publicznej ścieżce plików Drupala, niezależnie od tego, gdzie znajduje się katalog publiczny dla tego konkretnego pola.

Na przykład weź następującą konfigurację Samby (znajdującą się w /etc/samba/smb.conf, jeśli korzystasz z serwera plików opartego na systemie Linux). Znajduje się na samym końcu pliku po wszystkich innych opcjach konfiguracji:

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

valid users Składnia nie mówi „pozwala tej grupy użytkowników”, aby uzyskać dostęp do tego udziału. W tym przypadku używamy PAM do podłączenia naszego serwera plików do Active Directory, a ta konkretna grupa jest dostępna po podłączeniu dwóch.

Na serwerze sieciowym, bez względu na to, gdzie znajduje się witryna Drupal, przejdź do katalogu plików publicznych. Powiedz, że konkretne pole, dla którego chcesz udostępnić pliki, jest publiczne: // field_with_20k_files /. Uruchomiłbyś podobną komendę mount w taki sposób:

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

Mam gidustawiony dowolny proces, w którym działa serwer WWW, więc ma on dostęp do tego katalogu. Najprawdopodobniej będziesz chciał upewnić się, że usługa sieciowa ma dostęp do odczytu i zapisu na serwerze sieciowym, jest w stanie przesyłać pliki.

Lester Peabody
źródło
Wszystkie odpowiedzi są dobre, ale ponieważ mamy kontrolę nad infrastrukturą, odpowiedź ta jest najłatwiejsza i najprostsza z punktu widzenia Drupala do wdrożenia, ponieważ nie musimy instalować żadnych nowych modułów. Jesteśmy w środowisku Windows, ale dziękujemy za niewiarygodnie szczegółowe kroki!
John81
W takim przypadku możesz po prostu pominąć konfigurację Samby i po prostu uruchomić polecenie montowania bezpośrednio, używając nazwy użytkownika i hasła z odpowiednią konfiguracją uprawnień systemu Windows. Daj mi znać, jeśli masz jakieś pytania.
Lester Peabody
Próbuję to zrobić, ale mam problemy. Moje centrum serwisowe było w stanie zamontować serwer Windows, ale nie wiedzieliśmy stamtąd. Próbowałem użyć / mount_file_path jako publicznego katalogu plików, ale pojawia się błąd, że nie istnieje i nie można go utworzyć.
nmillin
5

Doskonałą opcją byłby również Storage API . Oto cytat na ten temat (ze strony projektu modułu):

... to niskopoziomowa struktura do zarządzania i przechowywania plików. Moduł i wszystkie podstawowe funkcje pozostaną niezależne od innych modułów, aby zapewnić tę funkcjonalność niskiego poziomu. Podmoduły są mile widziane, aby umożliwić interfejsowi API Storage współdziałanie z innymi wniesionymi modułami, ale nigdy nie będzie instrukcji zależności [] w pliku storage.info, chyba że jest to konieczne dla funkcji niskiego poziomu tego modułu.

Ma następujące funkcje:

  • Architektura wtykowa - można ją rozszerzyć do pracy z dowolną usługą magazynowania.
  • Redundancja - można ją skonfigurować do przechowywania plików w wielu usługach i natychmiastowej zmiany, która z nich obsługuje. Oznacza to, że Twoja witryna nie zostanie usunięta z powodu problemów z usługą .
  • Interfejs API kontroli dostępu - może być wykorzystywany do handlu elektronicznego.
  • Deduplikacja - gdy identyczne pliki są przechowywane w tym samym kontenerze, zostanie utworzona tylko jedna instancja. Oszczędza to przepustowość i przestrzeń dyskową.
  • Integracja pól plików i obrazów - włącz podmoduł „core bridge”.
  • Moduł audytu - porównuje manifest plików z tym, co jest zapisane w bazie danych, aby zapewnić dokładność zapisu.
ropic
źródło
4

Dwa moduły, które mogą również pomóc w tym obszarze, to CDN (używany przez wiele dużych witryn, w tym Economist.com) i Amazon S3 (specjalnie do używania Amazon S3 zamiast lokalnego systemu plików).

Patrick Kenny
źródło