This method generates URLs which allow overwriting a file's content with new content. The output is suitable
        for use in the ``send_data()`` method below.

        Input:
            * None

        Output:
            * A URL (string)

        Example::

            file = client.get_file("4ddfds", 0)
            file.send_data(put_url=file.upload_url, data=open("example.txt", "rb").read())

def upload_url(self):
        """
        This method generates URLs which allow overwriting a file's content with new content. The output is suitable
        for use in the ``send_data()`` method below.

        Input:
            * None

        Output:
            * A URL (string)

        Example::

            file = client.get_file("4ddfds", 0)
            file.send_data(put_url=file.upload_url, data=open("example.txt", "rb").read())

        """
        if self.put_upload_url:
            return self.put_upload_url
        else:
            response = GettRequest().get("/files/%s/%s/upload?accesstoken=%s" % (self.sharename, self.fileid, self.user.access_token()))
            if response.http_status == 200:
                return response.response['puturl']