Package googleapiclient :: 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: googleapiclient.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 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 or the total size of the media is unknown.

Raises:
  googleapiclient.errors.HttpError if the response was not a 2xx.
  httplib2.HttpLib2Error if a transport error has occured.

Decorators:
  • @util.positional(1)