Как сделать простой общедоступный сервер 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.
Другие вопросы по тегам