速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:091605

评论

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

干掉 “重复代码”,这三种方式绝了!

风铃架构日知录

Java 程序员 码农 工程师 代码

如何使用Gradle构建一个多模块项目?

风铃架构日知录

Java 程序员 后端 码农 架构师

创作技术博客以来的一些成就

嵌入式视觉

知乎 博客 CSDN 博客园

8.3K Star!这才是我们苦苦寻找的PDF阅读器。。。

Jackpop

推动GameFi走向新叙事的Smart Finance,成为火必投票竞选项目

股市老人

EditText(输入框)详解

梦笔生花

android edittext 输入框设计 文本框(TextView)

2023-01-06:给定一个只由小写字母组成的字符串str,长度为N, 给定一个只由0、1组成的数组arr,长度为N, arr[i] == 0表示str中i位置的字符不许修改, arr[i] ==

福大大架构师每日一题

算法 rust Solidity 福大大

Apipost接口自动化测试功能详解

测试人生路

Postman 自动化测试 接口自动化测试

Java学习者看过来!这些优质项目千万别错过

Jackpop

Smart Finance成为火必投票竞选项目,参与投票获海量奖励

鳄鱼视界

阿里云张献涛:无影,让计算触手可及

云布道师

无影云电脑

企业专用的即时通讯产品如何选择?

WorkPlus

Python专属搜索引擎!又一款Python库学习神器?

Jackpop

如何告别丑陋判空?一个Optional类就能搞定!

风铃架构日知录

Java 程序员 程序人生 后端 码农

Kyligence 客户案例“泰康集团精细化经营分析与运营平台”获评数据智能最佳实践案例

Kyligence

数据分析 指标管理

性能测试技术笔记(三):如何设计一个压测平台

老张

性能测试 压测平台

Git遇到冲突?解决也太简单了!

Jackpop

你知道微服务架构中的“发件箱模式”吗

JAVA旭阳

Java 架构

分享 7 个VUE项目用得上的JavaScript库

devpoint

JavaScript Vue 前端开发 前端开发框架

一加11:新的赛场,“不温和”的答卷

脑极体

连续四年发布科技趋势预测,他们在探索中国科技的“主干道”

脑极体

Apipost——让前端、后端、测试共用一份API文档!

不想敲代码

好家伙!阿里最新SpringBoot进阶笔记涵盖了SpringBoot所有骚操作

程序员小毕

程序员 后端 ssm springboot java面试

CMD有哪些有趣的命令?

Jackpop

Github上有什么好的unity开源项目?

Jackpop

数字人民币创新浪潮来袭,支付机构如何“乘风破浪”?

易观分析

金融 数字人民币 数字支付

高并发系统设计的15个锦囊

小小怪下士

Java 程序员 系统设计 高并发

Portraiture4人像智能磨皮插件下载亲测可用

茶色酒

Portraiture2023 Portraiture

WorkPlus平台多业务系统集成,让企业沟通协作更畅通

WorkPlus

Flutter Hero 动画组件的飞行过程显示控制

岛上码农

flutter ios 安卓 移动端开发 跨平台开发

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