我正在尝试使用openstacksdk的connection.get_object(container,object)检索已上载到openstack对象存储中的泡菜数据,我从它得到一个响应,但是文件体是一个字符串,我甚至可以将它保存到使用outfile选项的文件中,而不会出现问题。但是,我希望能够直接使用它,而不必先将其保存为文件,然后将其加载到泡菜中。
简单地使用泡菜的加载和加载不起作用,因为两者都不接受字符串对象。是否有另一种方法来检索数据,这样我就可以直接处理被腌制的数据,或者有什么方法解析到get_object()上的string/设置一个配置参数?
发布于 2020-11-24 19:27:27
编辑:我找到了解决方案,对于使用openstacksdk从openstack检索到的已被腌制的对象或任何其他文件,有几种方法可以在不诉诸磁盘的情况下处理数据。
首先,我实现的解决方案是使用openstack的连接方法get_object_raw:
conn = connection(foo,bar, arg**)
pickle.loads(conn.get_object_raw('containerName', 'ObjectName').content).get_object_raw返回一个带有属性内容的响应请求对象,该属性内容是二进制文件内容,它是可以加载泡菜的泡菜内容。
您还可以使用io.BytesIO创建一个临时内存中的文件,并使用它作为连接对象在get_object中的外部文件参数。
https://stackoverflow.com/questions/64905759
复制相似问题