【问题标题】:How do I make a simple public read-only WebDAV server with SabreDAV?如何使用 SabreDAV 创建一个简单的公共只读 WebDAV 服务器?
【发布时间】:2018-09-10 03:06:56
【问题描述】:

我最近开始研究 WebDAV,因为我发现它可以让我远程播放蓝光文件夹 - 即无需观众先下载整个 24gb ISO。

将 Kodi v18 中的 WebDAV 源添加到 Blu-ray 文件夹 - 它确实可以播放!非常棒。

服务器也可以安装在Windows上

net use m: http://example.com/webdavfolder/

或在 Linux 中使用

sudo mount -t davfs http://example.com/webdavfolder/ /mnt/mywebdav

-然后(理论上)应该使用任何支持 Blu-ray Disc Java (BD-J) 的软件媒体播放器播放,例如 PowerDVDVLC

vlc bluray:///mnt/mywebdav --bluray-menu
PowerDVD.exe AUTOPLAY BD m:

(当然,除非超时值设置得太低,目前 VLC 似乎就是这种情况)。

无论如何,这一切都很棒,只是我不知道如何使我的 WebDAV 服务器只读。目前任何人都可以随心所欲地删除文件,这当然不是最佳选择。

到目前为止,我只尝试过 SabreDAV,因为如果我想继续使用现有的虚拟主机,那是我唯一的选择。尝试使用非常少的设置,因为我已经读过最小设置应该默认为只读解决方案。它似乎没有发生。

我最初使用http://sabre.io/dav/gettingstarted/ 的设置并尝试删除一些行。还尝试在网络服务器上调用chmod 0444 MainFolder -R。而且我可以看到所有内容都具有只读属性。但它什么也没改变。仍然可以删除我想要的任何内容。 :-(

我错过了什么?

也许我使用了错误的技术来完成我想做的事情?是否有其他/更好的方法可以提供蓝光文件夹以供远程查看? (一个包括整个体验 - 即完整的 Java 菜单等)。

我应该提一下,所有这些当然是完全合法的。这是我自己的蓝光项目 - 不是版权材料。

另外:很难确定这属于 StackOverflow 还是 SuperUser。我最终将它发布在 StackOverflow 上,因为 SabreDAV 是关于编码的,并且因为 SuperUser 上没有 sabredav 标签。

【问题讨论】:

    标签: vlc webdav kodi sabredav blu-ray


    【解决方案1】:

    你有两个选择:

    • 为 sabre/dav 创建您自己的文件/目录类,在尝试删除时只会抛出错误。你基本上可以从Sabre\DAV\FS\DirectorySabre\DAV\FS\File的副本开始,然后改变写的方法。
    • 由于您正在考虑仅使用 linux 文件权限,因此您真正缺少的关键是“删除”不受您尝试删除的文件或目录的控制。要在 unix 中删除文件或目录,您只需要对父目录具有写权限即可。但是,我不建议走这条路线,因为这样做只会导致 sabre/dav 出现奇怪的错误,这可能会使客户处于困惑状态。这将导致 500 错误,而不是预期的 403 错误。

    【讨论】:

    • 谢谢!我应该编辑现有的 php 文件吗?或者将'n'paste复制到server.php中?编辑现有文件会导致奇怪的文件夹列表,例如根目录中的“文件夹斜线文件”文件名。
    • 不,永远不要这样做。了解子类化并为您的新类提供新的命名空间。
    猜你喜欢
    • 1970-01-01
    • 2014-08-22
    • 2016-02-05
    • 2011-02-12
    • 2011-08-23
    • 2018-07-05
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多