写点什么

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

评论

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

如何实现数据库读一致性

京东科技开发者

CNCF大使预测:2024年云原生面临倦怠、离职及云成本精简

SEAL安全

云原生 FinOps 开发人员

请用心对待面试机会

老张

面试经验 求职面试 求职技巧

企业为什么要选择软件定制开发?

天津汇柏科技有限公司

软件定制 软件定制开发 软件开发定制

从0到1:实验室设备借用小程序开发笔记

CC同学

用 25,000 颗星撬动一个向量数据库的世界

Zilliz

Milvus Zilliz AIGC 向量数据库

WBTT:“Fair Launch”如何做到更加公平

BlockChain先知

C# 介绍、应用领域、入门、语法、输出和注释详解

小万哥

C# 程序人生 编程语言 软件工程 后端开发

【深入挖掘Java技术】「源码原理体系」盲点问题解析之HashMap工作原理全揭秘(上)

码界西柚

Java 源码分析 hashmap 实现原理 2024年第十三篇文章

软件测试|探索Flask接口路由技术:构建灵活可拓展的Python应用

霍格沃兹测试开发学社

【第七在线】打破传统束缚:智能商品计划助力服装企业创新发展

第七在线

WBTT:“Fair Launch”如何做到更加公平

加密眼界

站在AGI拐点,重新想象老年生活

脑极体

AI

WBTT:“Fair Launch”如何做到更加公平

石头财经

WBTT:“Fair Launch”如何做到更加公平

股市老人

左耳听风 - 高效学习「读书打卡 day 08」

Java 工程师蔡姬

学习 读书笔记 程序员 个人成长 职业发展

数据集成时表模型同步方法解析

KaiwuDB

数据库 数据同步 数据集成

笔记软件Notability新手使用教程:功能特点、替代软件盘点和分屏技巧!

彭宏豪95

ipad 在线白板 笔记软件 Notability boardmix

Go 简单设计和实现可扩展、高性能的泛型本地缓存

陈明勇

Go golang 缓存 go 本地缓存

软件研发过程中,项目管理工具应该如何选择?

极狐GitLab

为什么需要在 OpenShift 上部署企业级 Ingress Controller

NGINX开源社区

负载均衡 Kubernetes openshift Ingress Controller nginx 开源版

倒计时1天|解锁「PolarDB开发者大会」正确打开方式

阿里云瑶池数据库

数据库 阿里云 云计算, 开发者大会

一文解析 Copycat Dex与 Bitcat Dex的区别

股市老人

AZ逃生:容灾部署规范和最佳实践

焦振清

服务部署 弹性伸缩 机房容灾 AZ 逃生 同城多活

都是 Copycat Dex的通证,eCAT 和 CAT 这两有啥区别?

股市老人

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