Uploads file to provided url.

        Returns contents as text

        Args:
            **url**: address where to upload file

            **filename**: Name of the uploaded file

            **file_stream**: file like object to upload

            .. versionadded:: 0.3.2
                **additional_headers**: (optional) Additional headers
                to be used with request

        Returns:
            string

def post_file(self, url, filename, file_stream, *args, **kwargs):
        """Uploads file to provided url.

        Returns contents as text

        Args:
            **url**: address where to upload file

            **filename**: Name of the uploaded file

            **file_stream**: file like object to upload

            .. versionadded:: 0.3.2
                **additional_headers**: (optional) Additional headers
                to be used with request

        Returns:
            string
        """
        res = self._conn.post(url, files={filename: file_stream},
                              headers=self._prepare_headers(**kwargs))
        if res.status_code == 200 or res.status_code == 201:
            return res.text
        else:
            return None