Как сделать простой общедоступный сервер WebDAV только для чтения с SabreDAV?
Недавно я начал изучать WebDAV, так как обнаружил, что он позволяет мне удаленно воспроизводить папку Blu-ray, то есть, не требуя, чтобы зритель сначала загрузил весь 24-гигабайтный ISO.
Добавьте источник WebDAV в Kodi v18 в папку Blu-ray - и он действительно воспроизводится! Очень здорово.
Сервер также может быть установлен на Windows с
net use m: http://example.com/webdavfolder/
или в линуксе с
sudo mount -t davfs http://example.com/webdavfolder/ /mnt/mywebdav
-и затем (теоретически) должны играть с любыми программными медиаплеерами, поддерживающими Blu-ray Disc Java (BD-J), такими как PowerDVD и VLC.
vlc bluray:///mnt/mywebdav --bluray-menu
PowerDVD.exe AUTOPLAY BD m:
(Если, конечно, значения тайм-аута не были установлены слишком низкими, что, кажется, имеет место для VLC в настоящий момент).
В любом случае, все это замечательно, за исключением того, что я не могу понять, как сделать мой сервер WebDAV доступным только для чтения. В настоящее время каждый может удалять файлы по своему усмотрению, и это, конечно, не оптимально.
До сих пор я только экспериментировал с SabreDAV, потому что afaik - это единственный вариант, который у меня есть, если я хочу продолжать использовать свой существующий веб-хост. Пытаюсь с минимальными настройками, потому что я читал, что минимальные настройки по умолчанию должны быть доступны только для чтения. Кажется, этого просто не происходит.
Первоначально я использовал настройки из http://sabre.io/dav/gettingstarted/ и попытался удалить некоторые строки. Также пытался позвонить chmod 0444 MainFolder -R
на веб-сервере. И я вижу, что все получает атрибут только для чтения. Но это ничего не меняет. Все еще можно удалить все, что я хочу.:-(
Что мне не хватает?
Может быть, я использую неправильную технологию для того, что я хочу сделать? Есть ли какой-нибудь другой / лучший способ предложить папку Blu-ray для удаленного просмотра? (Тот, который включает в себя весь опыт - то есть полное меню Java и т. Д.).
Я должен, вероятно, упомянуть, что все это, конечно, совершенно законно. Это мой собственный проект Blu-ray, а не материал, защищенный авторским правом.
Также: Сложно определить, относится ли это к Stackru или SuperUser. В итоге я разместил его в Stackru, потому что SabreDAV посвящен кодированию, а также потому, что в SuperUser нет тега sabredav.
1 ответ
У вас есть два варианта:
- Создайте свои собственные классы файлов / каталогов для saber /dav, которые просто выдают ошибку при попытке удаления. Вы можете в основном начать с копии
Sabre\DAV\FS\Directory
а такжеSabre\DAV\FS\File
и изменить методы, которые делают написание. - Поскольку вы рассматриваете просто использование разрешений для файлов Linux, на самом деле главное, чего вам не хватает, - это того, что "удаление" не контролируется для файла или каталога, который вы пытаетесь удалить. Чтобы удалить файл или каталог в Unix, все, что вам нужно, это разрешения на запись в родительский каталог. Тем не менее, я бы не рекомендовал идти по этому пути, так как это приведет к странной ошибке в saber /dav, что может привести клиентов в замешательство. Это приведет к ошибке 500, а не к ожидаемой ошибке 403.