Я хочу создать полностью портативную базу данных на внешнем жестком диске – с чего начать?

Вопрос или проблема

У меня есть огромная коллекция файлов (фильмы, музыка и т. д.) на внешнем SSD. Я хотел бы создать некий локальный сайт в корне этого SSD, который позволил бы мне создать пользовательский плейлист с любым фильтром, который я решу применить к своим файлам.

Допустим, я хочу сделать плейлист в жанре трип-хоп, я мог бы отфильтровать файлы по тегу “triphop”, затем нажать кнопку (предположительно, запуская какой-то скрипт, который я также должен буду написать, но одно дело за раз), которая создаст файл плейлиста, который я смогу открыть с помощью VLC (снова, примеры здесь).

Но прежде чем создать этот скрипт, мне нужно будет создать некую базу данных, которая будет содержать каждый файл, их соответствующие пути, теги (такие как “музыка”, “triphop”) и т.д. Я также подумаю о создании некой “страницы записи” для каждого файла с альбомной обложкой или миниатюрой файла, датой создания и т.д., ну и всей информацией, которую я когда-либо захочу хранить и отображать.

Я понимаю, что для этого, после нескольких часов веб-поиска, похоже, что SQLite БД будет наиболее подходящей (файл, хранящийся локально, без необходимости в сервере), и я также склоняюсь к локальной установке WordPress для обработки записей и тегов, но могут быть и другие/лучшие/проще подходящие варианты для этого. В конце концов, это будет размещено на SSD, и не предназначено для использования в интернете (т.е. не в интернете). Это также означает, что машина, к которой я подключаю свой SSD (скажем, во время киноночи у друга), не обязательно будет иметь установленный PHP или другое стороннее ПО. Этот проект должен быть самодостаточным на SSD, возможно, немного легким (так, чтобы еще оставалось место для файлов, которые он должен хранить).

Мне интересно, какой был бы наилучший вариант, по вашему мнению, для моего маленького вечернего проекта?

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

Что я пробовал: Просто напоминание, как уже говорилось выше, я изучал SQLite и локальные установки WP, но все еще не уверен, что в конце концов это будет самодостаточно (например, используя MAMP для запуска WP, который не будет установлен на других компьютерах, кроме моего).

Портативность может быть между

  1. разными операционными системами, такими как Windows, Linux, Mac
  2. разными машинами с одной и той же (популярной) ОС

Вы могли бы использовать генератор статических сайтов, такой как 11ty, с парсингом пользовательских данных из тегов id3 ваших аудиофайлов, но я полагаю, это будет не так быстро, как запросы к базе данных SQLite.

Сайт мог бы быть открыт путем прямого просмотра .html файлов или создания локального веб-сервера.

Для портативности вам понадобится портативный node.exe и каталог node_modules, установленный с помощью npm install. Вы могли бы включить бинарный файл node для Linux, если хотите также портативность для Linux.

Или вы могли бы сделать скрипт на другом языке и сохранить его исходный код или скомпилированный бинарный файл на внешнем диске.

Запуск портативного LAMP с WordPress был бы, на мой взгляд, лишним.

Для базы данных вы можете использовать локальный одиночный TiddlyWiki в корне диска.

Это полностью самодостаточная вики-система управления базами данных с логикой на HTML и JavaScript в одном файле, который вы можете открыть в любом современном веб-браузере.

Она имеет полноценную систему тегов для организации, позволяя сложную фильтрацию и категоризацию. Она может ссылаться на локальные или удаленные файлы и даже делать встроенный предварительный просмотр для форматов, удобных для веба в браузере.

Если вы засучите рукава, вы даже сможете создать скрипт для вывода плейлистов.

Вы не можете этого сделать.

Вы можете использовать SSD как место, где хранится файл .bak, и вы можете, желательно, подключить эту БД от одного ПК к другому. Проблема в том, что вы не можете хранить движок базы данных SQLite (программное обеспечение SQLite) на SSD. Это правда, что он портативен, и вы можете запускать .exe с SSD, но тогда у вас не будет интерфейса WordPress.

Вместо этого я бы выбрал, как сказал @ZZ в комментарии, Plex или Synology Audio Station.

  1. Plex: сохраните плейлист на своем ПК или на своем Synology NAS. Когда вы приходите к другу, откройте свой аккаунт Plex из браузера, и вуаля, у вас есть свои плейлисты.
  2. Synology Audio Station: если вы купите б/у Synology NAS, вы можете использовать встроенное программное обеспечение Audio Station, чтобы сделать то же самое, что и Plex. Идите к другу, перейдите на свой NAS через браузер и воспроизведите свои плейлисты.
  3. Сетевой диск: подключите свой SSD за маршрутизатором (на большинстве маршрутизаторов сегодня есть USB-порт) и сделайте этот SSD доступным в сети. Свяжите это с Plex или любым аналогом Plex и так же, как в предыдущем пункте, воспроизводите свои плейлисты через браузер.

Ответ или решение

Создание полностью переносной базы данных на внешнем жестком диске — это отличный проект, который позволит вам удобно управлять коллекцией медиафайлов и создавать собственные плейлисты. Давайте разберем, с чего начать, какие инструменты использовать и на каких аспектах стоит сосредоточиться.

1. Определение требований и инструментов

Прежде всего, вам необходимо определить несколько ключевых факторов, которые определяют выбор технологий и подхода к реализации:

  • Переносимость: База данных и все необходимые инструменты должны работать на разных операционных системах (Windows, Linux, Mac).
  • Легкость использования: Интерфейс должен быть простым и интуитивно понятным, чтобы вы могли быстро находить и фильтровать файлы.
  • Масштабируемость: База данных должна уметь справляться с большим объемом данных, так как у вас большая коллекция.

Исходя из вышеперечисленного, есть несколько подходящих вариантов.

2. Рекомендуемые технологии

2.1 SQLite

SQLite — это небольшая, но мощная реляционная база данных, которая может храниться в виде одного файла. Она идеально подходит для вашего проекта, так как:

  • Самодостаточность: Вы можете хранить файл базы данных на SSD и использовать его на любом устройстве без необходимости установки дополнительных программ.
  • Легкость в настройке: SQLite не требует сервера и можно легко интегрировать в приложение или скрипт.

2.2 TiddlyWiki

TiddlyWiki — это самодостаточная система вики на основе HTML и JavaScript. Она настраивается и хранит данные в одном HTML-файле. Это прекрасная альтернатива для создания базы данных с помощью меток и фильтров, и вот ее преимущества:

  • Легкость: Один файл можно легко перемещать между устройствами.
  • Гибкость: В TiddlyWiki можно создавать теги, ссылки и даже реализовать функционал для формирования плейлистов.

3. Создание пользовательского интерфейса

3.1 Использование HTML/CSS/JavaScript

Вы можете создать минималистичный веб-интерфейс с использованием простых HTML и CSS для отображения файлов и их тегов. JavaScript можно использовать для фильтрации и создания плейлистов:

  1. HTML-страница: Создайте структуру вашей веб-страницы, на которой отобразите ваши медиафайлы.
  2. CSS: Настройте стили, чтобы интерфейс выглядел привлекательно и был удобным для использования.
  3. JavaScript: Добавьте код для фильтрации по тегам и создания плейлистов для VLC. Возможно, вам придется использовать встроенные возможности для работы с файлами или интегрировать их с SQLite.

4. Подготовка структуры базы данных

Ваш файл базы данных SQLite должен содержать следующие таблицы:

  • Медиафайлы: Столбцы для имени файла, пути, тега(ов) и дополнительной информации (например, дата создания, обложка альбома).
  • Теги: Если вам нужно организовать теги более продвинуто, лучше создать отдельную таблицу для тегов и связать их с медиафайлами.

5. Запуск вашего проекта

Ваш проект может быть запущен несколькими способами:

  • Открыть HTML файл: Просто открываете HTML-файл в веб-браузере, что удобно для установления portability.
  • Локальный веб-сервер: Вы можете воспользоваться такими решениями, как Portable XAMPP или другой легковесный сервер, но это может быть избыточным для вашего проекта.

Заключение

Создание переносной базы данных для вашей коллекции медиафайлов — это привлекательный и интересный проект, который требует предварительной проработки технологий и архитектуры. Используйте SQLite для управления данными и TiddlyWiki для создания пользовательского интерфейса, а также простое HTML и JavaScript для интерактивности. Таким образом, вы создадите удобное и функциональное решение, которое будет работать на любом устройстве.

Удачи в вашем проекте!

Оцените материал
Добавить комментарий

Капча загружается...