alibek Опубликовано 5 апреля, 2016 · Жалоба Есть у меня свободный сервер с публичным адресом. На сервер я закатал архив Либрусека, который представляет собой ZIP-файлы, внутри которых по несколько тысяч файлов FB2. Поначалу я хотел сделать сетевой доступ через NFS, но реальность внесла коррективы — даже на относительно быстром интернет-канале (50 Мбит/с) работать почти невозможно, при попытке открытия ZIP-файла размером в несколько ГБ комп зависает на несколько десятков секунд. MyHomeLib с подключенным архивом фактически не запускается (в этом случае MyHomeLib пытается прочитать из файлов fb2 обложки и библиографическую информацию). Вообщем похоже на то, что доступ на файловом уровне на таких объемах не сделать. Теперь думаю сделать OPDS, хотя технология и не сильно мне нравится. Но тут другой вопрос. В данный момент архив представляет собой сотню ZIP-файлов размерами в среднем 2-3 ГБ. Про веб-сервер, который бы умел индексировать ZIP-архивы и отдавать из них конкретный запрашиваемый файл, я не знаю. Следовательно ZIP-архивы нужно распаковать, но тогда библиотека вместо 170 ГБ будет занимать все 400. Место на дисках есть, но все-таких жалко. Правда можно библиотеку перепаковать, из zip->fb2 сделать dir->fb2.zip, за ночь сделается. Но тогда при обновлении архивов Либрусека придется все перезакачивать и перепаковывать повторно. Вообщем у меня конструктивные мысли кончились, поэтому хотелось бы коллективный разум послушать. Как бы вы сделали библиотеку? Публичной она не будет, только для личного пользования. Хотелось бы удобную оболочку (веб-интерфейс), с удобным поиском, каталогом, закачкой. И обязательно с удобным использованием с мобильных устройств. В крайнем случае сгодится OPDS — мне в нем не нравится поиск, но зато не будет проблем с мобильными устройствами и читалками. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stas_k Опубликовано 5 апреля, 2016 · Жалоба В крайнем случае сгодится OPDS — мне в нем не нравится поиск, но зато не будет проблем с мобильными устройствами и читалками. если найдешь годный OPDS - поделись. sopds совершенно не пригоден на базе больше 10 гигов. не важно, в zip архивах книжки или так лежат. tinyOPDS во первых win во вторых ту же flibusta.fb2 сто гиговую за неделю не осилила проиндексировать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 апреля, 2016 · Жалоба А зачем индексировать? В том же архиве Либрусека в комплекте идут файлы inpx (для загрузки коллекций в MyHomeLib), там уже все проиндексировано. Я планирую не переиндексировать несколько сотен тысяч файлов, а импортировать уже готовые данные для какого-нибудь OPDS-каталога. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stas_k Опубликовано 5 апреля, 2016 · Жалоба А зачем индексировать? В том же архиве Либрусека в комплекте идут файлы inpx (для загрузки коллекций в MyHomeLib), там уже все проиндексировано. Я планирую не переиндексировать несколько сотен тысяч файлов, а импортировать уже готовые данные для какого-нибудь OPDS-каталога индексировать за тем, что inpx может и не быть. может быть битый. в библиотеку могут быть добавлены другие архивы. и такие вот разные причины... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sergey Gilfanov Опубликовано 5 апреля, 2016 · Жалоба В данный момент архив представляет собой сотню ZIP-файлов размерами в среднем 2-3 ГБ. Про веб-сервер, который бы умел индексировать ZIP-архивы и отдавать из них конкретный запрашиваемый файл, я не знаю. Следовательно ZIP-архивы нужно распаковать, но тогда библиотека вместо 170 ГБ будет занимать все 400. Место на дисках есть, но все-таких жалко. Правда можно библиотеку перепаковать, из zip->fb2 сделать dir->fb2.zip, за ночь сделается. Но тогда при обновлении архивов Либрусека придется все перезакачивать и перепаковывать повторно. Возможно, что: монтируем в read-only при помощи fuse-zip и на получившийся каталог натравливаем что-там раздавать умеет. Ну и про перепаковку и обновления - ситуация вроде бы слегка преувеличена. Как раз из за того, что они не хотят торрент обновлять (чтобы заново качать не нужно было всем), они свои обновления выкладывают как файлы изменений? Качать их, перепаковывать в отдельные fb2.zip и укладывать на свое место. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 апреля, 2016 · Жалоба Про fuse-zip не знал, любопытно. Но как я понял, каждый zip монтируется отдельно, как отдельный том. А у меня этих zip за сотню. Смонтировать их можно и скриптом, но как сервер отнесется к сотне томов? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sergey Gilfanov Опубликовано 5 апреля, 2016 · Жалоба Про fuse-zip не знал, любопытно. Но как я понял, каждый zip монтируется отдельно, как отдельный том. А у меня этих zip за сотню. Смонтировать их можно и скриптом, но как сервер отнесется к сотне томов? automount? Чтобы монтировалось только та папка и тогда, когда в нее лезут. Но как его с fuse скрещиваеется - не знаю. Оно и само по себе довольно большое шаманство. Тут смысл в том, что не всю сотню папок по отдельности прописывать отдельным mountpoint надо(это достаточно просто), а по вычислимой маске/каталогу. Когда лезешь в /mnt/dir/<номер> - и оно этот /mnt/dir/<номер> создает и соответствующий src в него монтирует. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 апреля, 2016 · Жалоба Нет, наверное такое не пойдет. Видимо буду перепаковывать в fb2.zip, а для синхронизации обновлений скрипты напишу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MATPOC Опубликовано 5 апреля, 2016 · Жалоба В данный момент архив представляет собой сотню ZIP-файлов размерами в среднем 2-3 ГБ. Про веб-сервер, который бы умел индексировать ZIP-архивы и отдавать из них конкретный запрашиваемый файл, я не знаю. Следовательно ZIP-архивы нужно распаковать, но тогда библиотека вместо 170 ГБ будет занимать все 400. Место на дисках есть, но все-таких жалко. В крайнем случае сгодится OPDS — мне в нем не нравится поиск, но зато не будет проблем с мобильными устройствами и читалками. Возможно, что: монтируем в read-only при помощи fuse-zip и на получившийся каталог натравливаем что-там раздавать умеет. На рутрекере этот вопрос обсуждался несколько лет назад. В результате бурного обсуждения пришли к выводу — вместо традиционных архиваторов формировать iso образ, который легко монтируется средствами OS. Если требуется понемногу модифицировать этот архив, то есть гибридные файловые системы, которые используют ro и rw разделы. В крайнем случае сгодится OPDS — мне в нем не нравится поиск, но зато не будет проблем с мобильными устройствами и читалками. Да, OPDS — это решение практически безальтернативное для библиотек. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sergey Gilfanov Опубликовано 5 апреля, 2016 · Жалоба На рутрекере этот вопрос обсуждался несколько лет назад. В результате бурного обсуждения пришли к выводу — вместо традиционных архиваторов формировать iso образ, который легко монтируется средствами OS. Тут человеку места жалко. А iso пожатыми, кажется, не бывают. Или я что-то пропустил? Будет, конечно, немного меньше, чем просто куча файлов. Но все равно нежатый текст. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MATPOC Опубликовано 5 апреля, 2016 · Жалоба Тут человеку места жалко. А iso пожатыми, кажется, не бывают. Или я что-то пропустил? Будет, конечно, немного меньше, чем просто куча файлов. Но все равно нежатый текст. epub и fb2.zip - это уже zip. Проблема не только в сжатом тексте, а в оверхеде файловой системы. А в iso этот оверхед существенно меньше.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 апреля, 2016 · Жалоба У меня есть ISO (правда не Либрусека, а траумовской библиотеки). У ISO много удобств, но он очень непортабельный. Не на всякую файловую систему его скопируешь. Часть содержимого без монтирования не скопируешь (а иногда с монтированием бывают сложности). И обновление большого ISO - это проблема. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sergey Gilfanov Опубликовано 5 апреля, 2016 · Жалоба И обновление большого ISO - это проблема. Есть еще UDF. Как ни странно, она очень широко поддерживается. возни немного побольше, но результат приблизительно такой же, как с iso получается. Только оно RW, если в правильном режиме использовать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 5 апреля, 2016 · Жалоба Вообщем запустил пока такой скрипт: #!/bin/bash BASE=/data1/books INDEX=librusec_local_fb2.inpx BOOKS=lib.rus.ec UNZIP=`which unzip` die() { echo $@ exit } [ -x "$UNZIP" ] || die "UNZIP not found" [ -d "$BASE/$BOOKS" ] || die "Book catalog not found" pushd $BASE/$BOOKS > /dev/null echo "Processing new archives..." find . -mindepth 1 -maxdepth 1 -type f -name \*.zip | while IFS= read -r FILE do SIZE=`ls -sh $FILE | cut -d' ' -f1` FILE=`basename $FILE` FILE="${FILE%.zip}" echo -n "- archive $FILE, size $SIZE... " [ -d $FILE ] && rm -f -r $FILE mkdir $FILE echo -n "unpack... " $UNZIP -q $FILE.zip -d $FILE echo -n "repack... " find ./$FILE -type f -exec gzip '{}' \; echo "finish" rm -f $FILE.zip done echo "Processing done." popd > /dev/null Посмотрю к утру, как прогресс будет идти. Распаковка выполняется относительно быстро, а вот упаковка почему-то в несколько раз дольше. Но думаю за пару суток все перепакует. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 6 апреля, 2016 · Жалоба А ни у кого нет описания INP и INPX файлов? Официальный форум MyHomeLib какой-то неживой, там активность еще в 2015 году затихла. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rm_ Опубликовано 6 апреля, 2016 · Жалоба Как вариант - на сервере графическую сессию в Xvncserver/Xrdp/NX, и в ней уже работающий обычно с локальными ZIP-файлами библиотечный софт. Если всё равно для себя, а не на массовый доступ. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 6 апреля, 2016 · Жалоба Нет, я с технологией определился, перепаковал библиотеку в fb2.zip и теперь к ней OPDS прикручу. Но чтобы не переиндексировать всю библиотеку, хочу из INPX загрузить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stas_k Опубликовано 6 апреля, 2016 · Жалоба Но чтобы не переиндексировать всю библиотеку, хочу из INPX загрузить. поможет ? http://home-lib.net/page/inpx -> Разработка -> Исходники Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dimas Опубликовано 6 апреля, 2016 · Жалоба У ISO много удобств, но он очень непортабельный. Часть содержимого без монтирования не скопируешь (а иногда с монтированием бывают сложности). Если правильно помню, Rar умеет открывать .iso как архив и извлекать пофайлово. 7z тоже ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 7 апреля, 2016 · Жалоба Если правильно помню, Rar умеет открывать .iso как архив и извлекать пофайлово. 7z тоже ... Практически все архиваторы (за исключением разве что TAR) при работе с архивом вначале подготавливают список файлов. Поэтому работать с ISO больших объемов будет мучением — при любых операциях будут подвисания по минуте. stas_k, да не особо, с Дельфи я не сильно знаком, а тут нужно весь проект хотя бы в общих чертах изучить, чтобы понять, что и где искать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stas_k Опубликовано 7 апреля, 2016 · Жалоба stas_k, да не особо, с Дельфи я не сильно знаком, разве .cpp .h дельфийские исходники? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bookpauk Опубликовано 17 октября, 2022 (изменено) · Жалоба Это, конечно, некропост, но... если еще актуально: Появился новый проект в точности под вашу задачу: inpx-web - веб-сервер для поиска по .inpx-коллекции. Выглядит так: https://lib.omnireader.ru Разворачивается за минуту. Просто поместить приложение inpx-web в папку с .inpx-файлом и файлами библиотеки и запустить. По умолчанию сервер будет доступен по адресу http://127.0.0.1:12380 Подробности: https://github.com/bookpauk/inpx-web Скачать: https://github.com/bookpauk/inpx-web/releases Возможности программы: - поиск по автору, серии, названию и пр. - скачивание книги, копирование ссылки или открытие в читалке - возможность указать рабочий каталог при запуске, а также расположение .inpx и файлов библиотеки - ограничение доступа по паролю - работа в режиме "удаленная библиотека" - фильтр авторов и книг при создании поисковой БД для создания своей коллекции "на лету" - подхват изменений .inpx-файла (периодическая проверка), автоматическое пересоздание поисковой БД - мощная оптимизация, хорошая скорость поиска - релизы под Linux и Windows Изменено 17 октября, 2022 пользователем bookpauk Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 17 октября, 2022 · Жалоба Вполне себе актуально. Спасибо, почитаю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rm_ Опубликовано 17 октября, 2022 · Жалоба On 4/5/2016 at 7:48 PM, alibek said: Поначалу я хотел сделать сетевой доступ через NFS, но реальность внесла коррективы — даже на относительно быстром интернет-канале (50 Мбит/с) работать почти невозможно Могу ещё добавить, внезапно SSHFS показал себя очень дружелюбным к большому пингу. Нужно было смотреть с сетевой шары с пингом 70мс файл MKV в 1080p -- на CIFS, NFS постоянные микрозатыки, а по SSHFS идёт без запинки, и даже перемотка в любое место без проблем. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 17 октября, 2022 · Жалоба https://kiwibyrd.org/2021/09/08/21h91/ Там есть и всё ништяки чтобы у себя поднять вебгуй с поиском и скачиванием. ИМХО, нынче 99% литературы просто мусор: что то устарело, что то содержит полезную инфу в слишком малых концентрациях. Ждём скайнет, он наведёт порядок :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...