WebDAV
WebDAV(网络分布式创作与版本控制)在标准 HTTP 上扩展了 PROPFIND、GET ranges 和 PUT 等方法,使远程文件服务器可以作为硬盘挂载。操作系统将它视为普通文件夹,应用通过它读写文件,不知道涉及网络。
在视频剪辑中,WebDAV 让你在导出时把原始文件从云端流式传输到 NLE,无需把完整内容下载到本地磁盘。NLE 看到一个盘符或挂载点,按需读取块并解码,就像本地的 MXF 或 R3D。
WebDAV 的吸引力在于它不需要任何内核驱动:它只是 HTTP,所以操作系统和 NLE 早已知道如何挂载并读取它。对视频而言,麻烦在于寻址(seek)。在大文件内随机访问依赖 HTTP Range 请求(比如请求第 500 MB 到 520 MB 的字节),而并非所有 WebDAV 客户端都能很好地发出它们。尤其是 Windows 内置的 WebClient 重定向器倾向于请求整个文件而非范围,这让通过 WebDAV 拖动一个 40 GB 的原始文件很痛苦。这一局限正是流式工作流在 Windows 上常常更偏好一个真正的虚拟文件系统驱动、而把 WebDAV 留给其客户端表现良好的地方(如 macOS)的原因。
安全很重要,因为挂载是通向你媒体的一扇活门。一个构建良好的本地 WebDAV 服务器只在回环地址上监听,对每个请求用一个按会话的令牌鉴权,并拒绝任何带浏览器 Origin 头的请求,真正的 NLE 从不发送它。结果是一个在剪辑师看来像本地存储的驱动器,而实际字节是按需从云端逐块取回的,除了剪辑应用之外没有任何东西能访问它们。
示例
- •macOS mount_webdav 把远程 URL 呈现为 /Volumes/MyShare
- •Windows net use 把盘符(如 Z:)映射到远程文件服务器
- •NextCloud 与 ownCloud 把用户存储暴露为可挂载的网络驱动器
在 Sanbila 中
Sanbila 通过虚拟驱动器把云端原始素材流式传输到 NLE,NLE 把它当作本地文件夹读取。协议细节对用户透明,无需手动配置挂载。
常见问题
WebDAV 和 Dokan 这类虚拟驱动器有什么区别?+
WebDAV 是操作系统无需特殊驱动即可挂载的 HTTP 级协议,简单,但依赖客户端对 HTTP Range 请求的处理好坏。像 Windows 上的 Dokan(或 Linux 上的 FUSE)这类虚拟文件系统驱动运行在更底层,直接传递应用真实的 read(offset, length) 调用,所以在巨大文件内寻址可靠。两者都能把云端媒体呈现为本地驱动器;驱动这条路随机访问更好。
为什么在 Windows 上通过 WebDAV 拖动会慢?+
因为流畅拖动需要客户端用 HTTP Range 请求只取播放头附近的字节,而 Windows 内置的 WebDAV 重定向器倾向于请求整个文件。在一个 40 GB 的原始文件上,这意味着每次寻址都拉取远超所需。这正是流式工作流在 Windows 上常用专用虚拟驱动器、而把 WebDAV 留给能很好发出范围请求的客户端的具体原因。
WebDAV 挂载安全吗?+
一个构建良好的本地 WebDAV 服务器只在回环地址上监听,对每个请求都要求一个唯一的按会话令牌,并拒绝任何带浏览器 Origin 头的请求,真正的 NLE 从不发送它。所以媒体能被你的剪辑应用访问,但不能被网页或其他设备访问,而原始文件本身留在云端,按需取回。
相关术语
参考资料
- RFC 4918:WebDAV 的 HTTP 扩展 · IETF
- 在 Windows 中映射网络驱动器 · Microsoft
- 在 Mac 上连接到 WebDAV 服务器 · Apple