对象与文件有什么不同?

问题描述:

Walrus,S3或任何云存储系统如何接收文件并以编程方式将其转换为对象?对象与文件有什么不同?

+1

的差异只在定义。文件是文件系统内的实体。由于例如S3并不完全是一个文件系统,他们称之为其他实体。你可以认为它们是一样的。 – phs 2012-07-15 08:07:54

如果你问如何做S3奠定它的对象了在磁盘上的内部服务器上,我们不知道(实现的细节都没有公开。)

它们是什么很可能做的是把你的对象的关键(桶+路径)和咨询consistent hash,将你的对象映射到一组服务器。上传被定向到这些服务器中的一个(基本上是随机的),这些服务器将其存储并且将未来的工作入队以将新对象传播给负责复制它的其他服务器。

此复制延迟是eventual consistency的基本需求。我还曾在某处听到亚马逊在存储层面使用error-correcting encoding来进一步支持坏的读取。

为了全面了解云对象存储系统如何存储对象(二进制文件),您可以阅读Swift Object Storage-Openstack的文档。

Swift与Amazon S3相似,因此与Walrus相似。

Swift通过代理服务器与客户端(群集外)通信,客户端可以通过RESTful HTTP API存储,删除对象。服务器维护Ring - 配置文件,用于维护文件及其物理位置之间的映射。

当存在上传文件的请求时,MD5散列值将根据文件的路径进行计算。

请找到细节:

Openstack Swift Architecture

Swift Documentation