如何在Orion ContextBroker中存储二进制数据?可能吗?

时间:2016-05-11 10:05:50

标签: fiware fiware-orion

我使用Orion来存储上下文信息,并且我有兴趣在属性中存储二进制数据(字节数组)。 是否可以在当前版本(1.1.0)?

提前致谢。

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的,它不可能在版本1.1.0上存储二进制数据。

之所以发生这种情况是因为Orion Context Broker使用Restful API,所有数据都通过XML格式(非常旧版本)或JSON(最新版本)传输,并使用MongoDB作为存储引擎,MongoDB将对象存储在二进制格式称为BSON。 BinData是二进制字节数组的BSON数据类型。但是,MongoDB对象的大小通常限制为4MB。为了解决这个问题,文件被“分块”为多个对象,每个对象少于4MB。这具有额外的优点,即让我们有效地检索给定文件的特定范围。但Orion不支持BSON数据,当然不会,因为Orion Context Broker不是为存储二进制数据而设计的。

您可以使用其他选择:

  • 使用单独的文件服务器并通过URL或其他服务器端技术引用它,您也可以使用其他Fiware GE,例如CKAN或ObjectStorage
  • 将二进制数据转换为十六进制,然后它将在AlphaNumeric数据上,在接收时您可以将其转换回二进制数据。 PythonPHPJavaC++中有一些示例如何将二进制操作为十六进制。