Rulia icon indicating copy to clipboard operation
Rulia copied to clipboard

能否添加Webdav支持? - WebDAV support

Open MeoCag opened this issue 1 year ago • 8 comments

希望通过webdav实现windows和ios漫画同步,如果能支持通过webdav访问网盘就好了

MeoCag avatar Mar 04 '24 13:03 MeoCag

理论上 webdav 只是一个协议,做好之后应该可以支持所有 webdav 服务器,我打算先从插件的方式去提供支持,因为本质上是 http 协议的东西,如果效果不好就做到原生中去

另外想请教一下,平时用其他阅读器看 webdav 上的漫画的时候,有预加载过程吗?特别是那些比较大的压缩包

LancerComet avatar Mar 05 '24 06:03 LancerComet

感谢大佬,我ios用可达漫画通过webdav看cbz,第一次打开会有加载延迟 (extract),不过可能是由于有缓存,之后再打开就不会有延迟了。

MeoCag avatar Mar 05 '24 07:03 MeoCag

关于 WebDAV 支持,我已经写好了基础设施代码,但我目前暂停了开发,因为我发现 Windows 对 WebDAV 的整合程度相当高,完全可以当本地磁盘来使用:

image

图里面画框框的都是 WebDAV,是 Windows 中对 WebDAV 的两种映射方式,使用起来和本地磁盘没有区别,目录直接可以添加到书架:

image

因此我觉得自己实现一个整合度完全比不上 Windows 的 WebDAV 是一个很蠢的行为,以前没有机会使用 WebDAV,所以没有提前了解 Windows 对其的支援程度,现在看来没有提前做研究有点草率;如果有机会的话,我想征求一下您的意见:Windows 对 WebDAV 的整合程度已经很高,是否有必要自己实现?

PS:Windows 系统中的 WebDAV 默认有两个限制,一个是地址必须是 https,一个是打不开 50MB 以上的文件,这两个限制都可以轻易使用注册表解除掉.

LancerComet avatar Apr 08 '24 19:04 LancerComet

感谢大佬,首先说声抱歉,我也不知道Windows有自带webdav支持,因为之前用Zotero是软件内支持WebDav的就没有去想这个问题。

但我发现用Windows挂载WebDav这种方式似乎存在一些问题,文件传输老是中断,一直卡在0速度(同样的WebDav服务,Zotero就不会出现这种情况,同步速度很快),不太清楚是否是Windows挂载这种方式本身的问题?

然后就是我用Rulia在WebDav文件夹里创建书架是没法检索到文件夹的,当然这个在非WebDav书架里也是这样的,不知道大佬可以改进一下么?

MeoCag avatar Apr 09 '24 03:04 MeoCag

子文件夹的访问功能开启在这里:

image

由于一些原因此功能目前在付费的功能中,开启后可以正常读取子目录:

image

我之前是在群晖上测试的,群晖是局域网内的设备,所以速度很快;刚才在坚果云上试了一下,断连倒是没有,但是 Rulia 会去读书架封面,封面来源于漫画文件,这会导致系统会去从互联网上下载文件,使得整体速度很慢,这确实是个问题,如果自己做 WebDav 可以针对性的去处理这些问题,包括这个封面预览慢的情况.

我一开始的设想是做一个 HttpStream 来抽象成一个本地文件流,背后使用 HTTP 206 去按需读取文件,理论上讲比如打开某个压缩包的某一页时不用下载全部压缩包,只需要下载特定字节;但是现实情况是大量的 .NET 基础设施在使用 Stream 的时候是使用同步的方式使用 Stream,导致线程阻塞,效果上看就是文件在下载时界面卡住,而且这个面太广,不好处理;因此只能提前下载文件并按照用户的设定是否进行缓存,但这样体验和系统的相比并没有什么优势,因为系统的 WebDAV 也是带 HTTP Cache 的,所以我就迟疑为什么不用系统的 WebDAV 映射.

所以我现在总结有两个情况:

  • 如果是访问局域网的 WebDAV 服务器,我推荐使用 Windows 自带的 WebDAV 映射,这个完全就是本地体验.
  • 如果是互联网的 WebDAV,为了体验顺畅,需要自己做一个 WebDAV 来优化体验(文件缓存、封面缓存,.etc.)

我刚才又仔细想了一下体验细节,比我之前想的情况要复杂,因此我现在打算将 WebDav 推到 0.19 之后,将 0.18 已经做好的东西先发出去.

LancerComet avatar Apr 09 '24 06:04 LancerComet

谢谢,之前也是因为WebDav和文件夹读取问题在犹豫没有购买的,现在看来文件夹读取是没有问题的,我目前用的互联网的WebDav,虽然用Windows自带的有些问题,不过也暂时能将就用,已经付费支持了,期待大佬更新内置WebDav

MeoCag avatar Apr 09 '24 06:04 MeoCag

感谢支持!

LancerComet avatar Apr 09 '24 07:04 LancerComet

Windows 对 Webdav 的本机支持其实挺垃的,软件内置支持可以更好地实现封面加载和阅读流式加载

dyphire avatar Jul 02 '24 13:07 dyphire

由于一些原因,Rulia 不再开发自建 WebDav 支持,详细原因和代替方案请阅读文档:Use WebDav (or something else)

如果不喜欢 Windows 自带的 WebDav 支持,可以使用 rclone,个人测试了公网的 WebDav 和七牛(S3)映射目录,使用效果良好,但需要一点配置.

LancerComet avatar Nov 19 '24 13:11 LancerComet