0

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

4

2 回答 2

0

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

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

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

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

请在以下位置找到详细信息:

Openstack Swift 架构

斯威夫特文档

于 2012-10-17T13:37:05.667 回答
0

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

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

这种复制延迟是最终一致性的潜在需求。我还曾在某处听说亚马逊在存储级别使用纠错编码来进一步支付错误读取。

于 2012-07-15T08:26:21.000 回答