繁体   English   中英

在FIWARE对象存储中存储数据

[英]Storing data in FIWARE Object Storage

我正在构建一个将文件存储到FIWARE对象存储中的应用程序。 我不太了解将文件存储到存储中的正确方法是什么。

以下摘自《 对象存储-用户和程序员指南》的 python代码片段显示了两种实现方法:

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 )时,它似乎使用了1.版本 由于该模块正在调用旧的(v.1.1)API版本而不是可能的最新版本(v.2.0),因此请参考python示例,不确定是否是这样做的过时版本。


当我更多地使用该模块时,意识到它不起作用,并且代码完全混乱。 因此,我分叉了该项目,并迅速理解我将需要重新编写它,并以使用指南中的上述python示例作为参考。 链接到我的仓库

撰写本文时,唯一尚未实现的方法是对象存储(PUT)和对象获取(GET)。


我还发送了一些有关对象存储的问题,这些问题已发送至fiware-lab-help@lists.fiware.org,但还没有收到任何回音,因此请在这里询问。

  1. 没有编写API库的丰富经验。 我是否需要担心身份验证令牌到期? 我认为每次与存储交互时,都不需要进行新的身份验证。 服务器启动(我们创建一个实例)并在内部保存它时,身份验证应该发生一次。 我应该实施某种刷新令牌的机制吗?

  2. 租户ID是否更改? 从下面的引用中可以得出结论,我只是一次租住一个租户,然后您可以在配置中使用它以减少身份验证调用。

需要有效令牌才能访问对象存储。 本节介绍了在使用与OpenStack Keystone兼容的身份管理系统的情况下如何获取有效令牌。 如果知道用户名,密码和租户详细信息,则仅需要步骤3。 资源

  1. 在身份验证期间,获取租户时,我应该如何选择“正确的”租户? 现在,我只是采用与示例代码类似的第一个方法。

  2. 对象存储容器仅属于一个区域,这是真的吗?

仅使用您所说的版本2。忽略您的版本1。在示例中将其注释掉。 应该将其从文档中删除。

(1)令牌在一段时间内有效。 这可能是一个小时或一天,具体取决于设置。 该时间段应在身份验证服务返回的令牌中指定。 令牌需要定期刷新。

(2)租户ID不变。

(3)通常只返回一个租户ID。 但是,可能为您分配了多个ID,在这种情况下,您必须选择当前正在使用的ID。 容器通常属于一个租户,并且不在租户之间共享。

(4)容器通常限于一个区域。 将来,当对Swift添加容器的多区域支持时,这种情况可能会改变。

解决了我的麻烦,并创建了可与FIWARE对象存储一起使用的NPM模块: https : //github.com/renarsvilnis/fiware-object-storage-ge

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM