Docker python客户端API副本

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处理/读取/转储响应的最佳方法是什么?

Apr*_*Apr 6

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)

应修改代码以处理文件夹.