关于毕业季照片分享的思考

背景

毕业季到了,女友跟班里同窗们一块儿拍了不少照片。因为照片分散在不一样的人的手机、相机里,她也没法当即给我传来她的照片。这个情景一年前我也遇到过,只是当时本身比较忙,加上考虑着还会在本校读研,也没太在乎毕业季照片的手机这一需求,以致于到如今个人电脑里甚至没有一张我穿学士服的照片:-=。而如今,当我想看看 gf 的照片时,这个需求横亘在我面前,让我特别的想解决掉它。html

让咱们从事实出发,理清问题的思路。git

需求的产生

大学生拍毕业季照的现状:github

  • 1.大学生在毕业季拍照留念是刚需,几乎平日爱拍照、不爱拍照的全部人都会参与其中。
  • 2.拍照通常以小团体为基本单元进行。可能是班级、社团这种常见的凝聚力较强的团体。
  • 3.随着科技的发展和生活水平的提升,愈来愈多的人具有了拍出高质量照片的设备和实力。

因为这种以小团体为单位的照片的大量产生,每一个团体中的照片会交叉散落在较多人手中。在这种分散的格局面前,单独挑选出本身的照片并保存的成本巨大,直接致使了你们最终需求的统一:服务器

  • 将全部的照片分发到全部人手中。

原有解决方案

现有的解决方案主要方案概括为以下四种:架构

  • 1.用移动硬盘等设备人力拷贝分布式

    这种方式太过古老和原始,缺点费时费力。ide

  • 2.使用公邮、网盘、QQ 群共享等方式统一上传、下载工具

    主要缺点是外网网速限制;另外,网速的限制让用户上传和下载的门槛变高,影响了上传积极性,若是有人迟迟不上传,最终下载完整数据的时间也会一直拖延,带来消极的体验;若是注册一次性帐号,这也不见得是环保的行为(或许这想法有点数据洁癖吧><),若是使用非一次性帐号,那么权限管理将比较头疼。post

  • 3.使用内网 BT 资源站分别打包上传、下载idea

    优势是利用了内网网速的优点。缺点是每一个人都打包作种,会让资源分散的很厉害,难于聚集。且作种等步骤对于部分用户而言,有操做门槛。

  • 4.先使用 1 中方法,统一手机照片数据,而后按照 2 或 3 的方法发布数据

    这大概是最靠谱的方式了,缺点集中在须要有人费时费力的手机数据上。固然,若是班里有一个不辞辛苦的好班长,这个问题就解决了。

总结:

对于一个懒人而言,现有的解决方案都是蹩脚的。这些解决方案都不约而同的但愿首先将数据聚合到一个外部空间中,而后再统一的分发给你们。这个步骤必要吗?实际上,咱们只是须要每一个人都方便、快捷的得到全部照片。

一个简单的设计

我将问题抽象为:

  • 完整的数据分散在 10 至 20 个数据拥有者手中,须要经过必定手段,让每一个个体都不重复的拥有完整的数据。

因为外网网速的限制,基于校园内网创建的工具就有了自然的优点。但若是使用内网,就不得不抛弃各大公司免费提供的邮箱存储空间、网盘存储空间。而校内的资源是有限的,没有本身的服务器,没有足够的空间存储你们的数据,这也就迫使咱们考虑到了 p2p 的系统架构。因而,有了这样的解决方案,设定代号为 BBT:

  • PC 机安装 BBT 工具软件后,能够设定共享目录和对应的分享 ID
  • 放入特定共享目录的文件,将使用基于 p2p 同步的方式,在拥有相同的分享 ID共享目录间同步数据,目的是让全部人都得到到每一个人的数据

在跟阿豪童鞋的交流中,他建议为了进一步简化用户操做,能够尝试这样一种体验方式:

  • 班级内全部人在同一个连接下载工具软件。保证这一连接下载的软件能互相通讯,实现数据同步。这杨就节省了用户本身设定相同的分享 ID的流程,而将这一过程转移到班长请求下载连接的过程当中。

确实够简洁,很赞,实现成本还须要调研。

BitTorrent Sync

在构思的过程当中,忽然想起前几天在 start up news 上看到了一个基于 BT 协议的同步软件 BitTorrent Sync

BitTorrent Sync

它的实现方式大概是咱们所须要的。惋惜的是,因为它的功能全面,界面略显复杂。而同时,它并无开放二次开发接口。

或许我须要本身搭建一个 p2p 的系统?

PS:

BT 的优点,在于利用了全部节点的存储和传输能力,节点数量越多,下载越快

BitTorrent Sync 的优点,则在于能动态的集合分散在不一样节点中的数据

感受这种去中心化的分布式系统,前景大大的有啊;)

相关文章
相关标签/搜索