diff options
Diffstat (limited to 'docker/api/container.py')
-rw-r--r-- | docker/api/container.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/docker/api/container.py b/docker/api/container.py index 962d8cb..e986cf2 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -3,6 +3,7 @@ from datetime import datetime from .. import errors from .. import utils +from ..constants import DEFAULT_DATA_CHUNK_SIZE from ..types import ( ContainerConfig, EndpointConfig, HostConfig, NetworkingConfig ) @@ -643,12 +644,15 @@ class ContainerApiMixin(object): ) @utils.check_resource('container') - def export(self, container): + def export(self, container, chunk_size=DEFAULT_DATA_CHUNK_SIZE): """ Export the contents of a filesystem as a tar archive. Args: container (str): The container to export + chunk_size (int): The number of bytes returned by each iteration + of the generator. If ``None``, data will be streamed as it is + received. Default: 2 MB Returns: (generator): The archived filesystem data stream @@ -660,10 +664,10 @@ class ContainerApiMixin(object): res = self._get( self._url("/containers/{0}/export", container), stream=True ) - return self._stream_raw_result(res) + return self._stream_raw_result(res, chunk_size, False) @utils.check_resource('container') - def get_archive(self, container, path): + def get_archive(self, container, path, chunk_size=DEFAULT_DATA_CHUNK_SIZE): """ Retrieve a file or folder from a container in the form of a tar archive. @@ -671,6 +675,9 @@ class ContainerApiMixin(object): Args: container (str): The container where the file is located path (str): Path to the file or folder to retrieve + chunk_size (int): The number of bytes returned by each iteration + of the generator. If ``None``, data will be streamed as it is + received. Default: 2 MB Returns: (tuple): First element is a raw tar data stream. Second element is @@ -688,7 +695,7 @@ class ContainerApiMixin(object): self._raise_for_status(res) encoded_stat = res.headers.get('x-docker-container-path-stat') return ( - self._stream_raw_result(res), + self._stream_raw_result(res, chunk_size, False), utils.decode_json_header(encoded_stat) if encoded_stat else None ) |