<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def put(self, file_obj, full_path, overwrite = False):
 """Upload a file. :param file_obj: A file-like object to check whether possible to upload. You can pass a string as a file_obj or a real file object. :param full_path: The full path to upload the file to, *including the file name*. If the destination directory does not yet exist, it will be created. :return: ``True`` when succcess to upload a file or ``False`` """

        try:
            file_obj = open(file_obj, 'r')
        except:
            file_obj = file_obj # do nothing

        content = file_obj.read()
        file_name = os.path.basename(full_path)

        now = datetime.datetime.now().isoformat()
        url = nurls['put'] + full_path

        if overwrite:
            overwrite = 'T'
        else:
            overwrite = 'F'

        headers = {'userid': self.user_id,
                   'useridx': self.useridx,
                   'MODIFYDATE': now,
                   'Content-Type': magic.from_file(file_obj.name, mime=True),
                   'charset': 'UTF-8',
                   'Origin': 'http://ndrive2.naver.com',
                   'OVERWRITE': overwrite,
                   'X-Requested-With': 'XMLHttpRequest',
                   'NDriveSvcType': 'NHN/DRAGDROP Ver',
        }
        r = self.session.put(url = url, data = content, headers = headers)
        r.encoding = 'utf-8'

        message = json.loads(r.text)['message']

        if message != 'success':
            print "Error put: " + message
            return False
        else:
            print "Success put: " + file_obj.name
            return True