Nav*_*vid 2 python rest gzip deflate docker
我正在使用Docker python客户端API'复制'.来自副本的响应是类型的requests.packages.urllib3.HTTPResponse
是否需要针对不同类型的文件进行不同的处理?
我从容器中复制了一个文本文件,但是当我尝试使用它时,
response.read()我将文本数据与二进制数据混合在一起.我认为内容解码器是
>>>resonse.CONTENT_DECODERS
>>>['gzip', 'deflate']
Run Code Online (Sandbox Code Playgroud)
从复制API处理/读取/转储响应的最佳方法是什么?
docker API的响应是一个未压缩的tar文件.我不得不阅读docker的源代码来了解响应的格式,因为这没有记录.例如,要下载文件remote_path,您需要执行以下操作:
import tarfile, StringIO, os
reply = docker.copy(container, remote_path)
filelike = StringIO.StringIO(reply.read())
tar = tarfile.open(fileobj = filelike)
file = tar.extractfile(os.path.basename(remote_path))
print file.read()
Run Code Online (Sandbox Code Playgroud)
应修改代码以处理文件夹.