如何将数据附加到OpenStack Swift对象存储中的对象?

时间:2016-08-11 10:35:28

标签: ibm-cloud openstack openstack-swift object-storage watson-iot

目前希望将实时物联网数据流式传输到OpenStack Swift中,但它seems 没有支持这样做 - API似乎只支持原子推动。

有没有人有任何其他经验或解决方法?

非常感谢!

2 个答案:

答案 0 :(得分:3)

  

考虑动态大对象(DLO)和静态大对象(SLO)清单。您可以使用许多较小的对象通过分段的概念构造大对象。从OpenStack大对象支持,“上传较大对象的段,并创建一个特殊的清单文件,下载时,将所有段连接为单个对象。”OpenStack Swift对象存储不支持附加到对象本身,然而确实提供动态和静态连接现有对象的工具

例如,您可以定义文件名模式 rawdata _ ,并在对象存储容器中建立DLO清单。每当您为此清单发出get时,OpenStack swift将自动连接与定义的文件名模式匹配的所有对象,并将其作为单个结果返回。此清单对象也可以通过Bluemix Spark服务笔记本(例如swift:// ...)加载,以便于对数据进行分析。

虽然清单主要用于支持> 5 Gb对象,我发现它们对切片和切块对象构建不同数量的原始数据或处理不断将原始数据添加到给定容器的批处理非常有用。

我已经为Bluemix服务@ http://blog.ibmjstart.net/2016/04/14/e-pluribus-unum-creating-openstack-manifest-objects-in-ibm-bluemix-object-storage/写了一篇关于对象存储清单的博客文章,这也可能有助于更多地了解它们的实用性。

希望这会有所帮助并祝你好运。

答案 1 :(得分:1)

目前在OpenStack Swift中不支持追加对象。社区中有这个蓝图:https://blueprints.launchpad.net/swift/+spec/object-append.