Package apiclient :: Module http :: Class MediaIoBaseDownload |
[hide private]
[frames] | no frames]

# Class MediaIoBaseDownload

source code

    "Download media resources.

    Note that the Python file object is compatible with io.Base and can be used
    with this class also.

    Example:
      request = farms.animals().get_media(id='cow')
      fh = io.FileIO('cow.png', mode='wb')
      downloader = MediaIoBaseDownload(fh, request, chunksize=1024*1024)

      done = False
      while done is False:
        status, done = downloader.next_chunk()
        if status:
          print "Download %d%%." % int(status.progress() * 100)
      print "Download Complete!"

Instance Methods | [hide private]
__init__(self, fd, request, chunksize=DEFAULT_CHUNK_SIZE) Constructor. | source code
next_chunk(self, num_retries=0) Get the next chunk of the download. | source code
Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Properties | [hide private]
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, fd, request, chunksize=DEFAULT_CHUNK_SIZE) (Constructor) | source code
    Constructor.

    Args:
      fd: io.Base or file object, The stream in which to write the downloaded
        bytes.
      request: apiclient.http.HttpRequest, the media request to perform in
        chunks.
      chunksize: int, File will be downloaded in chunks of this many bytes.
Decorators: `@util.positional(3)` Overrides: object.__init__

### next_chunk(self, num_retries=0) | source code
    Get the next chunk of the download.

    Args:
      num_retries: Integer, number of times to retry 500's with randomized
            exponential backoff. If all retries fail, the raised HttpError
            represents the last request. If zero (default), we attempt the
            request only once.

    Returns:
      (status, done): (MediaDownloadStatus, boolean)
         The value of 'done' will be True when the media has been fully
         downloaded.

    Raises:
      apiclient.errors.HttpError if the response was not a 2xx.
      httplib2.HttpLib2Error if a transport error has occured.
Decorators: `@util.positional(1)`