Walrus,S3或任何云存储系统如何接收文件并以编程方式将其转换为对象?
答案 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哈希值。
请在以下网址找到详细信息: