我正在构建将文件存储到FIWARE对象存储中的应用程序。 我不太明白什么是将文件存储到存储的正确方法。将数据存储在FIWARE对象存储中
下面从Object Storage - User and Programmers Guide采取的代码Python代码片段展示了2种方式做这件事的:
def store_text(token, auth, container_name, object_name, object_text):
headers = {"X-Auth-Token": token}
# 1. version
#body = '{"mimetype":"text/plain", "metadata":{}, "value" : "' + object_text + '"}'
# 2. version
body = object_text
url = auth + "/" + container_name + "/" + object_name
return swift_request('PUT', url, headers, body)
的1版混淆了我,因为当我第一次看到的唯一的Node.js模块(回购:fiware-object-storage)与Object Storage一起使用,似乎使用1.版本。由于该模块正在调用旧的(v.1.1)API版本,而不是推测最新的(v.2.0),所以引用python示例时,不确定这是否是过时的版本。
当我与模块打得比较,意识到它没有工作,它的代码是一团糟。所以我分叉了这个项目,很快就明白了,我将需要从头开始重新编写它,并将使用指南中提到的上述python示例作为参考。 Link to my repo。
在写这个时,唯一没有实现的方法是对象存储(PUT)和对象获取(GET)。
有大约我送到[email protected]对象存储一些另外的问题,但没有听到任何回来,要求他们在这里。
没有太多的编写API库的经验。 我是否需要担心验证令牌过期?我认为每次我们与存储进行交互时都不需要进行新的身份验证。当服务器启动时(我们创建一个实例),它在内部保存它,认证应该发生一次。 我是否应该实施某种刷新令牌的机制?
租户ID是否更改?从下面的引用假设获得一个租户我只是一次处理,然后你可以在配置中使用它来减少身份验证呼叫。
有效令牌,需要访问一个对象存储。本节 描述了如何使用与OpenStack Keystone兼容的身份管理系统 获取有效令牌。如果已知 用户名,密码和租户详细信息,则只需要步骤3是 。源
在认证过程中获取的租户应该怎么选择“右”之一,当?现在我只是采取第一个类似的例子代码。
确实对象存储容器只属于一个区域吗?只调用什么版本2.
Renārs嗨,我是WireCloud的主要开发者,我是读你的问题,因为你所用的'fiware,wirecloud '标签,但我没有看到任何关系。我建议你删除'fiware-wirecloud'标签;-) –
对不起,现在修复它。 –