2016-10-06 3 views
0

Я следую инструкциям, приведенным в этой ссылке для get_archive() link , но вместо создания моего контейнера я пытался использовать уже запущенный контейнер в моем случае «docker-nginx» в качестве входной строки а также папку назначения, в которой мой контент находился на сервере nginx как «/ usr/share/nginx/html», и получил мой результат для стата папки тоже, я хочу знать, как я могу указать папку назначения в этой функции, если не где мой файл tar tar? я не мог понять, где мой файл был загруженпапка назначения darcher-py getarchive

вот мой код strm,stat=c.get_archive(container_name,'/usr/share/nginx/html')

мой выход для печати (STRM) является <requests.packages.urllib3.response.HTTPResponse object at 0x7fe3581e1250> мой выход для печати (стат) является {u'linkTarget': u'', u'mode': 2147484157, u'mtime': u'2016-10-05T09:37:17.928258508-05:00', u'name': u'html', u'size': 4096}

ответ

0

I узнал, как эта функция работает, что она делает, возвращает сырой ответ запросов, сделанных в наш контейнер. необработанное объяснение ответа можно найти in this link , чтобы извлечь исходный контент, мы можем использовать этот код, чтобы мы могли просто читать наши необработанные данные в виде текстового формата в соответствии с выходным файлом в моем случае html.

raw_data=strm.read() 
f= open('out.html', 'w') 
f.write(raw_data) 
0

Как вы выяснили, объект потока здесь является файлоподобным потоком. При копировании большого файла, вы, вероятно, хотите поток вывод на диск вместо того, чтобы читать все это в памяти, например .:

import shutil 

strm, stat=container.get_archive(container_name, path_in_container) 
with open('out.html', 'w') as outfile: 
    shutil.copyfileobj(strm, outfile)