对象与文件有何不同?

时间:2012-07-15 08:06:17

标签: amazon-s3 cloud storage walrus

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

2 个答案:

答案 0 :(得分:0)

如果你问的是S3如何将其对象放在其内部服务器的磁盘上,我们不知道(实现细节不公开。)

他们很可能做的是获取对象的密钥(存储桶+路径)并咨询将对象映射到一组服务器的consistent hash。上传被定向到其中一个服务器(基本上是随机的),它存储它并将未来的工作排入队列,以便将新对象传播到负责复制它的其他服务器。

此复制延迟是eventual consistency的基本需求。我曾经听说亚马逊在存储级别使用error-correcting encoding来进一步消除不良读取。

答案 1 :(得分:0)

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

Swift类似于Amazon S3,因此与Walrus类似。

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

当有上传文件的请求时,将根据文件的路径计算MD5哈希值。

请在以下网址找到详细信息:

Openstack Swift Architecture

Swift Documentation