首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用openstacksdk从openstack的对象存储中检索数据

使用openstacksdk从openstack的对象存储中检索数据
EN

Stack Overflow用户
提问于 2020-11-19 05:10:48
回答 2查看 147关注 0票数 0

我正在尝试使用openstacksdk的connection.get_object(container,object)检索已上载到openstack对象存储中的泡菜数据,我从它得到一个响应,但是文件体是一个字符串,我甚至可以将它保存到使用outfile选项的文件中,而不会出现问题。但是,我希望能够直接使用它,而不必先将其保存为文件,然后将其加载到泡菜中。

简单地使用泡菜的加载和加载不起作用,因为两者都不接受字符串对象。是否有另一种方法来检索数据,这样我就可以直接处理被腌制的数据,或者有什么方法解析到get_object()上的string/设置一个配置参数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-24 19:27:27

编辑:我找到了解决方案,对于使用openstacksdk从openstack检索到的已被腌制的对象或任何其他文件,有几种方法可以在不诉诸磁盘的情况下处理数据。

首先,我实现的解决方案是使用openstack的连接方法get_object_raw:

代码语言:javascript
复制
conn = connection(foo,bar, arg**) 
pickle.loads(conn.get_object_raw('containerName', 'ObjectName').content)

.get_object_raw返回一个带有属性内容的响应请求对象,该属性内容是二进制文件内容,它是可以加载泡菜的泡菜内容。

您还可以使用io.BytesIO创建一个临时内存中的文件,并使用它作为连接对象在get_object中的外部文件参数。

票数 0
EN

Stack Overflow用户

发布于 2020-11-19 07:59:12

如果您正在使用Python3-pickle,则需要一个类似字节的对象加载方法接受文件路径,并依赖于file类型来处理向pickle提供bytes的问题。当您使用loads方法时,您需要为它提供一个bytes-like object,而不是一个字符串,因此您需要将字符串转换为字节。

Python 3中将字符串转换为字节的最佳方法?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64905759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档