def __load_record()

in oss2/resumable.py [0:0]


    def __load_record(self):
        record = self._get_record()
        logger.debug("Load record return {0}".format(record))

        if record and not self.__is_record_sane(record):
            logger.warn("The content of record is invalid, delete the record")
            self._del_record()
            record = None

        if record and not os.path.exists(self.filename + record['tmp_suffix']):
            logger.warn("Temp file: {0} does not exist, delete the record".format(
                self.filename + record['tmp_suffix']))
            self._del_record()
            record = None

        if record and self.__is_remote_changed(record):
            logger.warn("Object: {0} has been overwritten,delete the record and tmp file".format(self.key))
            utils.silently_remove(self.filename + record['tmp_suffix'])
            self._del_record()
            record = None

        if not record:
            record = {'op_type': self.__op, 'bucket': self.bucket.bucket_name, 'key': self.key,
                      'size': self.objectInfo.size, 'mtime': self.objectInfo.mtime, 'etag': self.objectInfo.etag,
                      'part_size': self.__part_size, 'file_path': self._abspath, 'tmp_suffix': self.__gen_tmp_suffix(),
                      'parts': []}
            logger.debug('Add new record, bucket: {0}, key: {1}, part_size: {2}'.format(
                self.bucket.bucket_name, self.key, self.__part_size))
            self._put_record(record)

        self.__tmp_file = self.filename + record['tmp_suffix']
        self.__part_size = record['part_size']
        self.__finished_parts = list(
            _PartToProcess(p['part_number'], p['start'], p['end'], p['part_crc']) for p in record['parts'])
        self.__finished_size = sum(p.size for p in self.__finished_parts)
        self.__record = record