写点什么

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

评论

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

内卷是必然

ES_her0

5月日更

分布式锁中的王者方案 - Redisson

悟空聊架构

redis 分布式 分布式锁 redisson

【LeetCode】增长的内存泄露Java题解

Albert

算法 LeetCode 5月日更

聊聊一个普通程序员在520这天的心态

后台技术汇

520 单身福利

活性炭能去甲醛吗?

小天同学

科普 5月日更 活性炭

多线程 VS 多进程(三)

若尘

多线程 Python编程 5月日更

kube-controller-manager之PV Cotroller源码分析

良凯尔

Kubernetes 源码分析 Ceph CSI

架构实战营 模块四作业

netspecial

架构实战营

520有感而发

yu

520 单身福利

Docker 入门

飞跃

可以学习一下安全方面的知识

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

分布式锁

邱学喆

分布式锁 redis分布式锁 zookeeper分布式锁

Node.js使用数据库LevelDB:超高性能kv存储引擎

devpoint

nodejs leveldb

拿金钱考验人性|靠谱点评

无量靠谱

虽不能至,心向往之|靠谱点评

无量靠谱

Flink的分布式缓存

大数据技术指南

flink 5月日更

华仔训练营模块4作业

方堃

打破固有思维(十六)

Changing Lin

5月日更

关于爱情的碎碎念

穿过生命散发芬芳

520单身福利

NLog整合Exceptionless

yi念之间

.net core exceptionless nlog

Docker 镜像和容器

飞跃

Docker 520 单身福利

Mac电脑:安装cnpm(补充步骤)

三掌柜

5月日更

🚄【Redis 干货领域】帮你完全搞定Cluster原理(架构篇)

洛神灬殇

redis redis集群 5月日更 redis架构

翻译:谁将在AI中赚钱?by Simon Greenman John 易筋 ARTS 打卡 Week 48

John(易筋)

ARTS 打卡计划

.Net Core Excel导入导出神器Npoi.Mapper

yi念之间

C# .net core npoi

梯度下降法 - DAY12

Qien Z.

5月日更 过拟合 梯度下降法

低代码/无代码和简单API

YonBuilder低代码开发平台

低代码

人工智能--野人过河

空城机

Java 算法 5月日更 大学笔记

学习笔记之:05 | 数组:一秒钟,定义 1000 个变量

Nydia

学习

设计千万级学生管理系统的考试试卷存储方案

贯通

架构实战营

WebContainers介绍:如何在浏览器运行原生的Nodejs

代码先生

大前端 webassembly 技术创新 WebContainers StackBlitz.com

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