写点什么

MakeDrive:来自 Mozilla 的 Web 端同步文件系统

  • 2014-09-08
  • 本文字数:1386 字

    阅读完需:约 5 分钟

MakeDrive 是由 Mozilla 基于 node.js filer 两个 JavaScript 框架开发的一款全新的 Web 端离线文件同步系统。它提供了一套可让其它应用使用的同步服务,从而使用户可以完全掌控他们分散存储的数据、文件的生命周期。

MakeDrive 的核心研发者之一 David Humphrey 这样描述它:

想象一下 Web 版的 Dropbox,我们不需要安装任何软件,就可以在不同的浏览器、应用程序以及移动应用之间共享文件和文件夹。这就是 MakeDrive 要达到的目的。

但是 MakeDrive 的主要目的却并不是备份,而是在 Web 页面中融合多元数据和信息,这一点是与 Dropbox 所不同的地方。一旦 Mozilla 的 WebMaker 工具集与 MakeDrive 结合起来,就可以让用户自己创建多元信息、多页面的 Web 应用从而代替单页面的 Web 应用,并且可以在不同的浏览器、不同的设备上使用所创建的 Web 应用。

事实上,David 启动这个项目的初衷是希望能让 Brackets (一个在线的代码编辑器)在浏览器中运行。这里有一些展示它们如何进行集成的示例代码

但是,很显然,该项目使用的应用程序超出了Mozilla 特定的应用场景。

MakeDrive 的一个主要功能是为 Web 应用提供离线同步模式,以满足一些特定的应用场景下的需求。试想一下,某一个基于浏览器的游戏,可以在离线状态下保存数据,并定期检测设备是否联网,如果检测到已联网就将离线数据进行同步,从而达到跨设备的数据共享。或者在使用一个 FTP 客户端的情景下,你不需要手动上传有变更的文件,同步服务会为你自动上传有变更的文件。

不过 David 自己也表示,现在这个项目还在初级阶段,还未到正式发布的时候。

上周五,我们的暑期工作已接近了尾声,并且在工作过程中我们以最大努力遵守了 Rob Pike 的编程 5 项原则。具体来说就是我们在让项目运行起来之前就先行做了一部分工作,以确保速度和可伸缩性。到了下个季度,我们工作的重心会转移到性能、内存管理、部署调试还有可伸缩性方面。

MakeDrive 中的一些概念和值得你们感兴趣的信息:

  • 文件系统是指用户所持有的东西。在 Mozilla 的语境中,它或许是一个 WebMaker(集成了 Mozilla 提供的 MakeDrive 同步服务),也有可能它就是 MakeDrive 服务。
  • MakeDrive 可作为一个服务被其他应用使用,比如 Nimble 和 AppMaker 就可以使用相同的 MakeDrive 文件系统。
  • MakeDrive 不维护文件的历史版本,也就是不提供文件的版本追溯。取而代之的是受到 rsync 启发的循环校验和差分算法来驱动同步,就是只对每个文件有变动的那部分进行同步,而不是暴力的替换整个文件(这点与 Dropbox 类似)。
  • 目前针对部分 Web 资源(HTML, CSS)进行了优化,对一些体积较大的资源文件(比如照片、视频)的优化还有待提升。
  • 使用本地数据库进行备份存储,在 IE、Firefox、Chrome 下支持 IndexedDB ,在 Safari 下支持 WebSQL,而 Opera 同时支持这两种数据库。

正如在 epayne notes 中提到的,MakeDrive 似乎已成为将互联网数据掌握在用户自己手中大潮流的一部分了。

你们可以在这里下载该项目 MakeDrive Github project ,以及通过 Mozilla wiki 了解更多信息。也可以通过 David 的博客了解更多的细节内容。

查看英文链接: MakeDrive: Syncing Filesystem for the Web from Mozilla


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-08 00:092025

评论

发布
暂无评论
发现更多内容

SQL的单表查询

Java 程序员 后端

TLS加密远程连接Docker

Java 程序员 后端

基于Fiber的React Diff算法源码分析

贝壳大前端技术团队

Fiber React Diff

SSM框架示例(适合新手)

Java 程序员 后端

System

Java 程序员 后端

Win10安装Tomcat服务器与配置环境变量

Java 程序员 后端

Android技术分享| 【自习室】自定义View代替通知动画(2)

anyRTC开发者

android 音视频 WebRTC 移动开发 自定义view

Tomcat 多端口,多虚拟主机配置方法

Java 程序员 后端

两强联手,百度智能云和中电互联打造自主可控工业互联网联合实验室

百度大脑

人工智能 百度

volatile关键字的原理和要避免的误区

Java 程序员 后端

Tomcat性能调优

Java 程序员 后端

tomcat的maxThreads、acceptCount,对高并发的影响

Java 程序员 后端

智能边缘框架Baetyl,为各行业落地实践提供安全机制

百度大脑

人工智能 百度

SQL Server 2008中的分区表(二):如何添加、查询

Java 程序员 后端

SSM框架示例(适合新手)(1)

Java 程序员 后端

Vue学习之基础入门

Java 程序员 后端

windows 下JDK12的安装过程

Java 程序员 后端

windows7 本地搭建ELK 收集项目运行日志

Java 程序员 后端

Worktile、Teambition与Tower项目管理软件对比

Java 程序员 后端

告别AI模型黑盒子:可解释的神经网络研究

索信达控股

机器学习 模型 可解释模型 可解释机器学习

SQL Server 高性能写入的一些总结

Java 程序员 后端

Swagger 3

Java 程序员 后端

SymmetricDS 数据库双向同步开源软件入门

Java 程序员 后端

Volatile:内存屏障原理应该没有比这篇文章讲的更清楚了

Java 程序员 后端

使用JDBC操作SAP云平台上的HANA数据库

汪子熙

JDBC Cloud SAP 11月日更

TCP面试相关总结

Java 程序员 后端

this与super关键字(阿里巴巴面试竟然问道这个了……今天把它盘透彻了!

Java 程序员 后端

Vim,人类史上最好用的文本编辑器!从此以后你就是一个善良的极客!

Java 程序员 后端

T-SQL——数据透视和逆透视

Java 程序员 后端

官宣!Apache ShardingSphere 5.0.0 正式发布

SphereEx

Java 数据库 Apache ShardingSphere

Ubuntu16安装Nvidia驱动(GTX1060显卡)

Java 程序员 后端

MakeDrive:来自Mozilla的Web端同步文件系统_Mozilla_Roopesh Shenoy_InfoQ精选文章