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 gid
ustawiony 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.