我可以有效地利用我的FIWARE帐户上可用于对象存储的所有操作。
尽管如此,我从容器中下载对象时发现了一种奇怪的行为。
请在下面找到重现这种奇怪行为的程序:
我将两个对象(“gonzo.png”和“elmo.png”)上传到容器“photos”
1.1。首先,通过云UI(https://cloud.lab.fiware.org/#objectstorage/containers/)我手动上传对象“gonzo.png”
1.2。稍后,按照对象存储GE程序员指南中的说明,我以编程方式(或在独立的Rest Client的帮助下)上传对象“elmo.png”
我从容器“photos”
下载对象2.1首先,按照对象存储GE程序员指南中的说明,我成功下载了对象“gonzo.png”。 webservice响应主体是此类对象的二进制内容。
2.2。稍后,按照步骤2.1中的相同说明,我尝试下载对象“elmo.png”。现在,webservice响应主体是一个带有元数据的json和对象的二进制内容。
我能做什么才能获得两个对象的标准响应体?无论是二元还是json。
如果最初通过Cloud UI或外部工具(程序或休息客户端)上传对象,为什么会得到不同的响应?
与Download blob from fiware object-storage中一样,我已经尝试设置标题 response_type:text ,但行为是相同的。
答案 0 :(得分:0)
有许多对象存储,具有不同的API。 Object Storage GE最初基于CDMI API [1]。 目前,它基于Openstack Swift [2]。 Cloud Portal仍然使用一些CDMI功能,特别是它可以对某些类型的对象进行64位编码,在这种情况下,对象内容是包含元数据和数据的base64编码的json。我怀疑这是您使用云UI创建的对象所发生的事情。
因此,请使用Swift本机API进行所有操作。 API在此处有详细记录:http://developer.openstack.org/api-ref-objectstorage-v1.html 程序员指南(https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Object_Storage_-_User_and_Programmers_Guide)中的python示例也使用Native API。
[1]谷歌搜索SNIA CDMI。少于10次重复,我不能放太多链接 [2] google for Openstack Swift