В Drupal 7 путь загрузки по умолчанию задается в параметрах файловой системы в пути к публичной файловой системе. Можно ли указать другой сервер в этом пути? У меня есть веб-сайт Drupal 7, который мы разрабатываем и который будет иметь около 20 тыс. Файлов, и я бы хотел разместить их на другом сервере, чем веб-сервер. Если невозможно указать другой сервер, то есть ли какие-либо пользовательские модули, способные справиться с этим?
9
Ответы:
Я делаю что-то очень похожее. Если вы используете инфраструктуру, которая поддерживает эту конфигурацию, я рекомендую предоставить общий ресурс на вашем файловом сервере (Linux или Windows Server) и просто смонтировать его в общем пути к файлам Drupal, где бы ни находился публичный каталог для этого конкретного поля.
Например, возьмите следующую конфигурацию Samba (находится в /etc/samba/smb.conf, если вы запускаете файловый сервер на основе Linux). Это происходит в самом конце файла после всех других параметров конфигурации:
valid users
Синтаксис там говорит «позволяет эту группу пользователей» , чтобы получить доступ к этому ресурсу. В этом случае мы используем PAM для подключения нашего файлового сервера к Active Directory, и эта конкретная группа становится доступной, как только вы подключите их.На вашем веб-сервере, где бы вы ни размещали ваш сайт Drupal, перейдите в каталог публичных файлов. Скажите, что конкретное поле, для которого вам нужно сделать файлы доступными, является общедоступным: // field_with_20k_files /. Вы бы запустили подобную команду монтирования примерно так:
У меня есть
gid
набор для любого процесса, выполняющего веб-сервер, поэтому он имеет доступ к этому каталогу. Скорее всего, вы захотите убедиться, что веб-сервис имеет доступ на чтение и запись к веб-серверу и способен загружать файлы.источник
Также отличным вариантом будет API хранилища . Вот цитата об этом (со страницы проекта модуля):
источник
В этой области также могут помочь два модуля: CDN (используется многими крупными сайтами, включая Economist.com) и Amazon S3 (специально для использования Amazon S3 вместо локальной файловой системы).
источник