Comments 49
Шикарно.
словил диссонанс, сидя на Mac OS.
А в чем отличие от pyd.io/about/ ну и owncloud опять же? Продуманный API?
habrastorage.org/files/641/f15/b54/641f15b5492c4356ab6bc7e6578c5fb1.png
Три скриншота, для сравнения.
Owncloud — это linux приложения, для организации своего облака? Пусть и доступом через web.
Данный mediabox это в первую очередь заказная GPL разработка лёгкой web оболочки для организации NAS.
Три скриншота, для сравнения.
Owncloud — это linux приложения, для организации своего облака? Пусть и доступом через web.
Данный mediabox это в первую очередь заказная GPL разработка лёгкой web оболочки для организации NAS.
Owncloud довольно печален по функционалу и по реализации (внутри там откровенный говнокод). Pydio не плох, и функционален (хотя написан тоже кажется без фреймверков на свой лад, но там хотя бы можно понять что к чему), но не совсем OpenSource как я понял.
Код такой же?


начал устанавливать для проверки на денвере. в index.php требуется файл require __DIR__.'/../vendor/autoload.php'; где его искать?
вы про storage? В README.md написано, как его ставить.
autoload.php появится после php composer.phar install
Позже напишу доку по установке самого mediabox
autoload.php появится после php composer.phar install
Позже напишу доку по установке самого mediabox
кстати, обратил внимание: слеш "/" в винде же "\" — нужно менять их на DIRECTORY_SEPARATOR
Вопрос немного не в тему, но все же — а нет ли такого же приложения, но с возможностью добавлять в плейлист файлы сторонних сервисов, т.е. не лежащие непосредственно на винте где сторейдж установлен. Эдакий онлайн-плеер отовсюду, хостящийся дома. Существует такое в природе?
Интересный проект. Любопытно, а насколько сложно было бы сделать замену имеющемуся плееру на возможность передачи команд на внешний API? К примеру, у меня уже есть проигрыватели на разных компьютерах, которые могут принимать команды по запуску медиа-файлов на воспроизведение и я хотел бы использовать данный проект для работы с медиа-текой.
Не понял. Вопрос в том, с какой стороны рассматривать ваш вопрос :) Где находится плеер (железка или программа?) и где это API, а потом где нужно запускать медиа-файлы?
Скажем так, плеер это некий условный сервис, принимающий команды (open, play, pause, next, stop и т.п.) через своё API. Он, в свою очередь, научен работать с конкретным железом или софтом. У меня есть чем-то похожий навигатор по медиа коллекциям, который в итоге отправляет команду воспроизведения выбранного контента на упомянутый сервис плеера, т.е. локальное воспроизведение в моём случае менее востребовано, хоть и тоже полезно.
Сейчас сделано так: при открытии видео файла вызывается $(file).video(«init»), где:
— file — нужный объект файла, его атрибут data-id=«178» ссылается на файл в БД, по этому же ID можно получить нужный файл (потоком) из storage.
— video(«init»), соответственно, инициализация видео плеера. Для вашего проекта файл mediabox-video.js не нужен, вместо него можно сделать некий mediabox-remote-video.js и вызовом $(file).remotevideo(«init») передавать данные о необходимом файле, в этот внешний API. А этот API уже обращается к storage за нужным файлом.
Как-то так
— file — нужный объект файла, его атрибут data-id=«178» ссылается на файл в БД, по этому же ID можно получить нужный файл (потоком) из storage.
— video(«init»), соответственно, инициализация видео плеера. Для вашего проекта файл mediabox-video.js не нужен, вместо него можно сделать некий mediabox-remote-video.js и вызовом $(file).remotevideo(«init») передавать данные о необходимом файле, в этот внешний API. А этот API уже обращается к storage за нужным файлом.
Как-то так
есть стандарт на это — DLNA. в идеале, вам нужно в своём устройстве-плеере иметь dlna-клиент, там где хранятся файлы — dlna-сервер, а этот фронтенд должен работать как dlna-контроллер
Не знаю почему, но у меня половина всего не работает. Ни кроп, ни аплоад, ни проигрывание видео, дальше не смотрел. Так и должно быть на демке?
А как вы планируете/боретесь с дубликатами файлов?
а зачем с ними бороться? )
т.е. вы на 100% уверенны, что дубликаты в хранилище не появятся?
Сейчас дубликаты приспокойно сохраняются…
Сейчас дубликаты приспокойно сохраняются…
да что ж такое, я даже не понял о чём вы
у вас есть хранилище mediabox-storage
в него можно записывать файлы
я беру и записывают туда один и тот же файл 100 раз — получаются дубли.
Почему такое может происходить — по ошибке например.
Как вы с этим боритесь? Планируете бороться?
в него можно записывать файлы
я беру и записывают туда один и тот же файл 100 раз — получаются дубли.
Почему такое может происходить — по ошибке например.
Как вы с этим боритесь? Планируете бороться?
Нет, это не ошибка.
Данный storage называется Simple не просто так, он умеет сохранять файлы, читать и удалять их. Он не умеет дефрагментировать ФС, не умеет раздавать торренты и ещё много всего не умеет.
Для примера, у меня есть другая версия storage, которая использует БД, она не создаёт дубли, а ещё этот storage умеет сканировать FS и передавать в клиент mediabox-а всю (локальную) базу файлов в ней. Например, очень удобно для того, чтобы пользоваться своей базой мультимедиа файлов.
А в Xvid используется свой storage написанный на python, который работает как в локально с фс, так и с amazon s3.
Проект выложен, на github, если он интересен вы можете пользоваться им, можете править исходники (если умеете), можете сделать свой storage с торрентами и блекджеком. Можете написать отличную документацию и сделать pull request в этот репозиторий или исправлять ошибки, но только вот перестаньте мне срать мозг :)
Данный storage называется Simple не просто так, он умеет сохранять файлы, читать и удалять их. Он не умеет дефрагментировать ФС, не умеет раздавать торренты и ещё много всего не умеет.
Для примера, у меня есть другая версия storage, которая использует БД, она не создаёт дубли, а ещё этот storage умеет сканировать FS и передавать в клиент mediabox-а всю (локальную) базу файлов в ней. Например, очень удобно для того, чтобы пользоваться своей базой мультимедиа файлов.
А в Xvid используется свой storage написанный на python, который работает как в локально с фс, так и с amazon s3.
Проект выложен, на github, если он интересен вы можете пользоваться им, можете править исходники (если умеете), можете сделать свой storage с торрентами и блекджеком. Можете написать отличную документацию и сделать pull request в этот репозиторий или исправлять ошибки, но только вот перестаньте мне срать мозг :)
del
Не работает коннект к storage: «Политика одного источника запрещает чтение удаленного ресурса»
Проблема связана с Cross-origin resource sharing, пока починил добавив в Index.php нужные заголовки, но кажется это стоит исправить на уровне приложения.
Так же хотелось бы иметь возможность подключить медиабокс к уже существующему файловому хранилищу.
Так же хотелось бы иметь возможность подключить медиабокс к уже существующему файловому хранилищу.
Хорошо, что сами определил проблему :) Напишите проблему, что за ось, используемый вами браузер и как расположен storage относительно mediabox?
+ напишите мне headers, добавлю их в след коммите
+ напишите мне headers, добавлю их в след коммите
linux (ubuntu) nginx + php-fpm + mysql, FF 29, сторейдж и медиабокс на разных доменах, про заголовки прочитал тут ) ru.wikipedia.org/wiki/Cross-origin_resource_sharing
А кстати, в демо (mediabox.8x86.ru) также выскакивает CORS? Или же там у вас всё нормально, на той же системе? (там аналогично разные домены для mediabox и storage)
Там при аплоаде 500 Internal Server Error.
Это нормальное поведение, т.к. upload там запрещён. Значит уведомление CORS появляется при upload?
Я всё к тому, что мне хочется понять причину возникновения. У меня и на demo всё нормально (я же туда загружал файлы) и во время тестов на локальном ПК с удалённым storage.
Я всё к тому, что мне хочется понять причину возникновения. У меня и на demo всё нормально (я же туда загружал файлы) и во время тестов на локальном ПК с удалённым storage.
Все что я сделал, это поднял на домашнем сервере 2 хоста, сторейдж и медиабокс. И при аплоаде в консоле браузер начал ругаться на CORS. И на самом деле это верно, так как по умолчанию кросс-доменные AJAX запросы могут быть только через JSONP. Только вот не ясно почему они происходят, ведь по логике фронт должен быть связан с бекендом только. Иначе зачем тогда бекенд.
upload происходит при помощью XMLHttpRequest, не AJAX запрос с JSONP.
Вот тут: /web/js/mediabox/mediabox-uploader.js 69 строка
Вот тут: /web/js/mediabox/mediabox-uploader.js 69 строка
Это и есть ajax ) Любые не GET запросы из js к чужим доменам браузеры пресекают. Если только их не разрешить заранее.
AJAX запрос с JSONP — я имею ввиду $.ajax({ dataType: «JSONP» })
CORS по идее и есть замена JSONP?
CORS по идее и есть замена JSONP?
Ну это как бы лекарство )
на стороне storage я специально добавляю во время /save/ (upload):
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: X-Requested-With, Content-Type');
header('Access-Control-Max-Age: 600');
В чём то другом у вас ошибка, мне кажется? Или же в конфиге yii не верное указан URLдо storage или же клиентский компьютер не знает этого URL?
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: X-Requested-With, Content-Type');
header('Access-Control-Max-Age: 600');
В чём то другом у вас ошибка, мне кажется? Или же в конфиге yii не верное указан URLдо storage или же клиентский компьютер не знает этого URL?
По логике запросы к сторейдж должен разрешить именно backend (то где хостится mediabox). А там такого заголовка я не видел. Да и возможно звездочка не самая лучшая идея )
чтобы не путать:
frontend — куча JS
backend — сама БД, с информацией о файлах, пользователях и превьюшках
Upload происходит между frontend и storage. Backend здесь не участвует, не его это дело. В контексте mediabox backend нужен для быстрого доступа к информации о файлах и фс. Поэтому он и расположен рядом с frontend.
А storage может быть расположен далеко не локально и он должен принимать простые команды от frontend: сохранить, получить и удалить.
frontend — куча JS
backend — сама БД, с информацией о файлах, пользователях и превьюшках
Upload происходит между frontend и storage. Backend здесь не участвует, не его это дело. В контексте mediabox backend нужен для быстрого доступа к информации о файлах и фс. Поэтому он и расположен рядом с frontend.
А storage может быть расположен далеко не локально и он должен принимать простые команды от frontend: сохранить, получить и удалить.
Оставлю тут свое мнение и советы.
1 — Основной минус Mediabox (лично для меня) в том что он хранит информацию о файлах в базе данных. Получается любые операции с файлами надо дублировать и в базе, что убивает на корню использование его для уже имеющейся медиатеки, плюс использования в связке с другими сервисами. Торренты, samba, webdav, etc. Советую все же посмотреть как работает Pydio, это вроде бы прямой конкурент. =)
2 — Не до конца понятно как подключить несколько сторейджей (файловую систему, dropbox, webdav) и как они будут между собой взаимодействовать.
3 — Было бы очень круто иметь простой интерфейс для добавления плагинов, особенно плагинов для редактирования файлов, что бы например можно было запилить интеграцию с редакторами документов habrahabr.ru/company/teamlab/blog/219761/ или каким нибудь онлайн редактором фото и изображений )
4 — Паблик ссылки на скачивание файлов.
5 — Шаринг файлов между пользователями.
4 и 5 не критично совсем
1 — Основной минус Mediabox (лично для меня) в том что он хранит информацию о файлах в базе данных. Получается любые операции с файлами надо дублировать и в базе, что убивает на корню использование его для уже имеющейся медиатеки, плюс использования в связке с другими сервисами. Торренты, samba, webdav, etc. Советую все же посмотреть как работает Pydio, это вроде бы прямой конкурент. =)
2 — Не до конца понятно как подключить несколько сторейджей (файловую систему, dropbox, webdav) и как они будут между собой взаимодействовать.
3 — Было бы очень круто иметь простой интерфейс для добавления плагинов, особенно плагинов для редактирования файлов, что бы например можно было запилить интеграцию с редакторами документов habrahabr.ru/company/teamlab/blog/219761/ или каким нибудь онлайн редактором фото и изображений )
4 — Паблик ссылки на скачивание файлов.
5 — Шаринг файлов между пользователями.
4 и 5 не критично совсем
Мнение и советы это хорошо :) А то я в основном получаю письма; «как поставить mediabox?», «документация плохая», «сделайте, как я хочу» или «всё тлен — не нужно». До того, чтобы сделать нормальную документацию и инсталятор как в wordpress, хочется услышать, как раз варианты куда развивать, как развивать и нужно ли вообще.
1 — Вот тут habrahabr.ru/post/221737/#comment_7576655 чуть-чуть отписался, зачем нужен именно такой backend.
2 — Об этом я не думал, но подумать можно, мысль интересная.
3 — Опять же мысль полезная. Вы бы их в issue поместили (https://github.com/Zazza/mediabox-php-yii/issues) чтобы не потерялись
4 и 5 — немного в другом виде уже было реализовано. Но сначала, мне нужно понять «куда развивать, как развивать и нужно ли вообще»
1 — Вот тут habrahabr.ru/post/221737/#comment_7576655 чуть-чуть отписался, зачем нужен именно такой backend.
2 — Об этом я не думал, но подумать можно, мысль интересная.
3 — Опять же мысль полезная. Вы бы их в issue поместили (https://github.com/Zazza/mediabox-php-yii/issues) чтобы не потерялись
4 и 5 — немного в другом виде уже было реализовано. Но сначала, мне нужно понять «куда развивать, как развивать и нужно ли вообще»
Я бы брал вектор на развитие приложения для домашних и мало-офисных NAS систем. Ввиду некоторого не доверия к облакам (важные документы там хранить все же стремно, у того же гугла были прецеденты с выдачей информации спец. службам), у людей есть желание построить свой собственный google drive, с блек-джеком.
Пока что получилась вещь в себе, вроде бы интересно, но как применить ее к уже существующему сторейджу (как я писал, с самбой btsync-ом и торрентами) не понятно )
Пока что получилась вещь в себе, вроде бы интересно, но как применить ее к уже существующему сторейджу (как я писал, с самбой btsync-ом и торрентами) не понятно )
Sign up to leave a comment.
Mediabox