Я делаю что-то очень похожее. Если вы используете инфраструктуру, которая поддерживает эту конфигурацию, я рекомендую предоставить общий ресурс на вашем файловом сервере (Linux или Windows Server) и просто смонтировать его в общем пути к файлам Drupal, где бы ни находился публичный каталог для этого конкретного поля.
Например, возьмите следующую конфигурацию Samba (находится в /etc/samba/smb.conf, если вы запускаете файловый сервер на основе Linux). Это происходит в самом конце файла после всех других параметров конфигурации:
[data]
comment = Data directory
browseable = yes
writable = yes
valid users = "@DOMAIN\Domain Admins"
path = /data
create mask = 0664
force create mode = 0664
valid users
Синтаксис там говорит «позволяет эту группу пользователей» , чтобы получить доступ к этому ресурсу. В этом случае мы используем PAM для подключения нашего файлового сервера к Active Directory, и эта конкретная группа становится доступной, как только вы подключите их.
На вашем веб-сервере, где бы вы ни размещали ваш сайт Drupal, перейдите в каталог публичных файлов. Скажите, что конкретное поле, для которого вам нужно сделать файлы доступными, является общедоступным: // field_with_20k_files /. Вы бы запустили подобную команду монтирования примерно так:
sudo mount -t cifs -o user=domainadministrator,uid=domainadministrator,gid=apache //fileserver/data /path/to/field_with_20k_files
У меня есть gid
набор для любого процесса, выполняющего веб-сервер, поэтому он имеет доступ к этому каталогу. Скорее всего, вы захотите убедиться, что веб-сервис имеет доступ на чтение и запись к веб-серверу и способен загружать файлы.