Хранение и доступ к файлам в moodle 2

Хранение и доступ к файлам в moodle 2

от Владимир Дмитриев -
Количество ответов: 3

Накопились вопросы. 

1. У нас большое количество HTML учебников, на каждой странице может быть  до 100 картинок (формулы), в чебнике всего тысячи. Т.к. поиск ссылок на хэшированные файлы осуществляется через таблицу files, значит ли это, что при просмотре учебников (а их много) будет конкретно грузиться база? Что делать? Будет ли это сьерезным препятствием для миграции?

2. Я не смог в установленном с нуля moodle 2 создать файлы устаревшего хранилища по образцу 1.x. Т.е. если в moodledata создать директории 2,3,... (номер курса) и положить в них файлы, они не отображаются в устаревшем хранилище и это не дает возможность использовать его задним числом. Это фича или баг?

3. Еще одно наблюдение. Если удалить ресурс (файл), то в списке файлов он исчезнет (так и должно быть), однако в filedir он не удаляется. Также не удаляется и из базы. Не логично. Может что-то cron делает (не проверял), в англ. доках пишут что должно пройти какое-то время. Какое?

4. Создал хранилище "Файловая система". Все работает, но как из него загрузить те же страницы с кучей ссылок? Если же в "файловой системе" архив, то при разархивации все файлы улетают в хэшированый репозиторий.

5. Если не надоел с вопросами, то вот еще улыбаюсь Как уже говорил используем HTML учебники с кучей директорий. Загружаем их zip, разархивируем, указываем главный - все прекрасно работает. Если в другом курсе надо вновь указать ссылку на этот учебник, то чтобы не добавлять все эти папки легче снова провести разархивацию. Как и следовало ожидать, filedir не увеличивается, "файлов на сервере" тоже,  а вот записей в таблице files прибывает! (повторюсь их немало) С чего это?

В ответ на Владимир Дмитриев

Re: Хранение и доступ к файлам в moodle 2

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

1. Нет, не значит. Нет, не будет. В moodle 2 огромное количество нововведений, некоторые из них, естественно, приводят к замедлению работы системы, некоторые, наоборот, направлины на оптимизацию и ускорение. Большое количество запросов к базе в режиме чтения не должны вас пугать, они хорошо оптимизированы. Гораздо большую нагрузку создают операции записи и операции чтения файлов с диска. Операция поиска строки в базе происходит эффективнее, чем операция поиска файла в папке, как это происходило в 1.9. Если всё-таки будет наблюдаться замедление именно в связи с этим, можно поставить перед moodle кэширющий прокси - пути к ресурсам в moodle оптимизированы под GET-запрос, а значит могут кэшироваться прокси-серверами. Препятствий для миграции столько же, сколько при миграции с Windows 95 на Windows 7 - аппаратны требования безусловно выше, но и преимуществ немало.

 2. Это фича. Устаревшее хранилище потому и называется устаревшим, что это плохой подход, при котором место заваливается дубликатами файлов, из системы не удаляются неиспользуемые файлы. То, что в moodle 2 называется устаревшее хранилище, хранится по новому, просто речь о том,  файлы храняться без привязки к ресурсам, а значит не удалятся автоматически, когда вы удалите ссылающийся на них ресурс. Устаревшее хранилище можно вернуть,нужно в базе данных в какое-то поле со словом legacy вписать, кажется число 2, но делать этого не стоит.

3. Да, Вы верно подметили. Чистка производится по cron. Некоторые удаляются через день, некоторые через 4 дня.

4. С разарзивацией это норамально. Читайте тут http://docs.moodle.org/22/en/File_system_repository - этот репозиторий предназначен, например для того, чтобы дать пользователям возможность вгружать на сервер много файлов по ftp или ещё как. 

5. Совершенно логично - таблица files хранит все упоминания файлов во всех местах. Добавили файл в новое место - добавилась запись. При этом физически файл остаётся в том же месте.

P.S. Мне кажется, вы слишком сильно волнуетесь за размеры таблиц. Не волнуйтесь. Moodle успешно используется в системах с  десятками тысячами курсов и сотнями тысяч файлов.

В ответ на Vadim Dvorovenko

Re: Хранение и доступ к файлам в moodle 2

от Владимир Дмитриев -

Спасибо, Вадим, большое за развернутый ответ. Вы меня успокоили, буду пытать дальше.