@classmethod
    def download_file(cls, uri, fobj):
        # Breaks the URI into usable componenents.
        values = get_values_from_media_uri(uri)

        conn = cls._get_aws_s3_connection(values['username'],
                                          values['password'])
        bucket = conn.get_bucket(values['host'])
        key = bucket.get_key(values['path'])

        logger.debug("S3Backend.download_file(): " \
                     "Downloading: %s" % uri)

        try:
            key.get_contents_to_file(fobj)
        except AttributeError:
            # Raised by ResumableDownloadHandler in boto when the given S3
            # key can't be found.
            message = "The specified input file cannot be found."
            raise InfileNotFoundException(message)

        logger.debug("S3Backend.download_file(): " \
                     "Download of %s completed." % uri)
        return fobj
Returns the full znode path for a given item id.
dataset/ETHPy150Open duointeractive/media-nommer/media_nommer/core/storage_backends/s3.py/S3Backend.download_file--crossover with--dataset/ETHPy150Open Knewton/pettingzoo-python/pettingzoo/dbag.py/id_to_item_path