代码之家  ›  专栏  ›  技术社区  ›  microspino

面向点对点内容分发网络的Git

  •  1
  • microspino  · 技术社区  · 15 年前

    有人以这种方式使用git吗?

    我想分发一些 多媒体 从服务器到某些服务器的内容 Android remote devices

    服务器可以是任何东西,但我更喜欢linux的盒子。

    我需要一些关于如何组织存储库体系结构的建议:它必须是星形拓扑还是其他什么?

    系统的远程端不需要任何交互性,换句话说,远程git存储库可以自动地拉和推它需要的任何东西。

    更新: 我找到了 here

    更新2: 好的,我读了“Git的非SCM用途”一章,下面是作者关于对等CDN的看法:

    你必须获得新的内容[…] 由xml的任意组合组成 声音。你需要建立一个内容 轻松高效地传输所有 机器的必要内容 在你的网络上。你需要 不断确定每个内容 机器有它需要的东西 并将差额作为 尽可能有效地。[…] 原来Git是一个 很好地解决了这个问题。

    我没有发现任何关于在里面提到这本书的一小部分的东西,所以我希望我没有侵犯任何版权。不管怎样,如果有人抱怨,我会删除它。

    3 回复  |  直到 8 年前
        1
  •  1
  •   Scott Chacon    15 年前

    因此,在以前的工作中,我们使用Git正是为了这个目的,原因是我们的媒体资产不经常变化,所以无论我们使用什么,我们都可能必须以任何方式发送整个文件-因此,二进制数据化的问题,尽管也是其他内容分发工具的问题,并不重要。

        2
  •  2
  •   Gintautas Miliauskas    15 年前

    我建议不要用git来处理这样的问题。对于初学者来说,Git将使用额外的电话存储来保存修订历史记录,并且它将发送整个文件(而不是delta),因为多媒体内容是二进制的,而diffing对其不起作用。只需实现一个方法来列出服务器端多媒体的最后修改日期和另一个方法来下载更新的文件(我建议HTTP,因为它是最简单的)。在服务器端,当然可以在内部使用git对多媒体文件进行版本控制,但我不想公开git接口。

        3
  •  2
  •   masonk    15 年前

    rsync是一个成熟的文件分发系统,可以通过ssh或它自己的协议(与git相同)工作,可以制作二进制补丁,并且不一定保留更改历史。也许你应该开始看看能不能找到那份工作。