当我第一次开始使用 OpenStack Swift( OpenStack 中的对象存储服务)时,我立即希望能够将其作为驱动器安装在我的系统上。当时我在 HP 公共云 上工作,想挂载一个公共云存储作为本地驱动器。虽然不是 Dropbox 的替代品,但这会让我拥有一个相当大的远程驱动器,而且有很多方法可以使用它。
第一次尝试这样做是在 2012 年初,但并不顺利。我使用了一些现有的开源项目,并尝试插入 swift。在读取小文件和少量文件的地方,当文件变大或您想上传文件时,它会失败。
从那次尝试开始, Matt Butcher 尝试了第二次尝试构建在 SabreDAV 上,这是一个 PHP 库。虽然它能够毫无问题地读写文件,但较大的文件会出现问题。这不是构建通过 WebDAV 挂载服务器的方法,而是构建通过代理到 swift 的传递。问题不在 SabreDAV 或 PHP 中。相反,问题出在 PHP 位于 Web 服务器后面的方式以及 Web 服务器如何将文件传递给 PHP。这是我们探索解决的一个基本技术问题。
第三次尝试要成功得多。 Matt 使用 Node.js 构建 WedDAV 以快速传递代理。传递元素很重要,因为文件不驻留在代理上。相反,信息通过并简单地从 WebDAV 转换为 swift,反之亦然。托管应用程序的服务器不需要大型文件存储来在本地缓存文件。这是通过对 Node.js 中的文件和信息的低级别访问来实现的。
该项目在很多方面都取得了成功,我们希望在 HP 公共云中提供它。不幸的是,由于多种原因,这并没有发生,代码库被搁置了一段时间。现在,该代码已在 GitHub 上以开源许可的形式提供。
因此,如果您有兴趣将 OpenStack Swift 安装为驱动器,或者您想通过 WebDAV 与 swift 交互,请查看 Swift WebDAV 代理 。
请注意,这是讨论该项目的系列文章中的第一篇。更多细节即将推出。