Файловое хранилище

Файловое хранилище

от Константин Обрывин -
Количество ответов: 14

Добрый день.

У меня опять вопросы.

1. Можно ли в Moodle организовать хранилище файлов на другом компьютере сети? Например у меня лежат видеоинструкции на компьютере и его видно в виндовой сети, например так \\arhiv\video\   Сделано это для организации хранения больших файлов.

2. Можно ли эти видеоинструкции показывать на сайте Moodle? Может есть какой то плагин?

В ответ на Константин Обрывин

Re: Файловое хранилище

от Евгений Мамаев -

1. Можно хранить всю папку moodledata на другом сервере в сети или на сетевом хранилище. Для этого требуется в качестве значения параметру $CFG->dataroot указать сетевой путь

2. Видео внедрять через WYSIWYG редактор или вставлять html код  в требуемый ресурс.

В ответ на Евгений Мамаев

Re: Файловое хранилище

от Константин Обрывин -
Спасибо.

Но на удаленном ресурсе планируется хранить только тяжелые файлы видеоинструкций. Курсы обучения планирую хранить локально.

Получается что никак?  Тут или-или?

В ответ на Константин Обрывин

Re: Файловое хранилище

от Евгений Мамаев -

Либо все-таки рассмотреть возможность размещения всех файлов данных на сетевом хранилище в локальной сети, либо искать плагин, позволяющий выдавать файлы со "стороннего" ресурса, либо разрабатывать

В ответ на Евгений Мамаев

Re: Файловое хранилище

от Stanislav Reva -

Не совсем детально прописан вопрос, но если сайт имеет внешний IP-адрес, т.е. доступен из интернета, а локальный ресурс имеет "серый" IP-адрес, то предоставить доступ из сайта в локальную сеть  = нарушить базовые принципы безопасности

В ответ на Stanislav Reva

Re: Файловое хранилище

от Константин Обрывин -

Файлы текстовых курсов планируется хранить там где установлен Moodle. А вот тяжелые файлы планируется держать на другим ресурсе. Оба ресурса и Moodle и хранилище видео находятся в одной локальной сети. До хранилища видео можно достучаться по протоколу SMB (ввести путь в проводнике). А вот как заставить Moodle брать файлы из хранилища и проигрывать их на страничке в Moodle я не знаю. 

В ответ на Константин Обрывин

Re: Файловое хранилище

от Alex Djachenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода Изображение пользователя ООО "Открытые Технологии" Изображение пользователя Тестер Moodle Изображение пользователя Эксперт по Moodle

Можете хранилище тяжелого контента сделать доступным по http и тогда достаточно поставить ссылку в любом материале Moodle: медиафильтр определит видеоролик по расширению и заменит видеоплеером.

В ответ на Константин Обрывин

Re: Файловое хранилище

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Чтобы решить Вашу проблему, нужно понимать, как вообще работает отображение любого видео в любом браузере на любом сайте. В браузер с сайта загружается плеер, а плееру передается ссылка на файл, плеер на стороне клиента скачивает файл и проигрывает его. Поэтому для просмотра видео клиенту нужен одновременно доступ  к сайту с плеером, и к сайту с файлом видео.
Если Вам достаточно просмотра видео только в локальной сети Вы можете вообще делать ссылки на видео в виде
file: // \\arhiv\video\video1.flv
правда такая ссылка считается локальным файлом, поэтому браузеры и флеш-плеер могут отказаться предоставлять доступ к этому файлу без дополнительных настроек, а moodle не согласится автоматически подставлять для таких ссылок плеер.

Если просмотра в локальной сети недостаточно, то простым и очевидным решением является вывести ваше хранилище в интернет под отдельным доменным именем. Тогда ссылки на видео обретут вид
http: // arhiv.inst.org/video/video1.flv 
На эти файлы можно будет нормально сослаться и плеер их нормально подхватит. Правда в этом случае доступ к видео будет неограниченным - не будут проверяться права на доступ к ресурсу. С другой стороны в этом нет ничего страшного, если не настраивать отображение содержимого каталога, то узнать ссылку на файл можно будет только из курса в moodle.

Если возможности вывести ресурс с видео в отдельный домен нет, но есть доступ с сайта с moodle до сервера с видео, то можно настроить сам веб-сервер на отдачу файлов с другого ресурса. То есть Ваш сайт с moodle будет Выкачивать файл с видео с хранилища и отдавать его так, как будто этот файл находится на самом сервере. Сделать реверсный прокси можно по-разному.
Если у Вас linux на сервере с moodle,  то вам следует примонтировать сетевую папку Для начала Вам следует примонтировать сетевую папку в отдельную от moodle и moodledata папку на сервере командой типа
mount -t cifs //arhiv/video /mnt/cifs ....
Если у Вас Windows, то просто подключите сетевой диск.

Пример настройки для apache. Для примера, что ваш архив будет доступен в папке arhiv (потому что такая папка не используется в moodle) в корне сайта с moodle.
Alias /arhiv "/mnt/arhiv"
<Directory "/mnt/arhiv">
  Require All Granted
</Directory>
В этом варианте файлы должны стать доступны по адресу типа
http: // moodle.inst.org/arhiv/video/video1.flv
 Конечно, в этом доступ к файлам видео ничем не ограничен, по сути этот способ почти ничем не отличается от варианта с выводом видеохранилища на отдельном доменном имени.
В ответ на Vadim Dvorovenko

Re: Файловое хранилище

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода
Но вообще-то в moodle есть свой плагин для решения этой проблемы. Называется "Файловая система" (filesystem).
Создайте в папке moodledate папку repository, а в ней папку video. Примонтируйте в эту папку свою сетевую шару.
В linux
mount -t cifs //arhiv/video /var/moodledata/repository/video ....
В Windows
mklink /D C:\moodledata\repository\video \\arhiv\video\
В moodle Зайдите Администрирование / Плагины / Хранилища файлов и включите хранилище Файловая система. Зайдите в настройки этого хранилища и добавьте новый экземпляр, придумайте ему название и выберите папку video из списка. Разрешите создание ссылок.
После этого при выборе файлов при вставке медиа через соответствующую кнопку редактора появится новое хранилище. При добавлении файлов из него необходимо будет указывать вариант "Создать ярлык". Если укажите "Скопировать", то файл скопируется в основное хранилище и начнет занимать место на сервере с moodle.

При этом способе ссылки на файлы будут вида
http: // moodle.inst.org/pluginfile.php...
При любом обращении к файлам будут проверяться права доступа, и люди, не имеющие прав доступа к курсу не смогут файл получить. Но, при таком способе возрастет нагрузка на сервер moodle, так как в других вариантах файл отдается веб-сервером, а в этом случае будет обрабатываться php-скриптом, что медленнее. При этом при добавлении контента есть риск выбрать  вместо "Создать ярлык" пункт "Копировать", который выбран по умолчанию и не отключается.
В ответ на Vadim Dvorovenko

Re: Файловое хранилище

от Константин Обрывин -

Вадим, спасибо!

У меня все получилось. Смонтировал удаленный каталог как ссылку. Добавил эту ссылку как доп. файловое хранилище и все заработало.


В ответ на Константин Обрывин

Re: Файловое хранилище

от Mikhail Bauman -

Попробуйте посмотреть в сторону Symlink
Для версии Moodle 1.9 мне приходилось это использовать вполне успешно в сочетании с сетевыми дисками и единым курсом-хранилищем для всех пользователей (например, курс "Библиотека УМК"). 
То есть, можно добиться, что Moodle "будет воспринимать" своей директорией, находящейся внутри moodledata, директорию, находящуюся совсем в другом месте...