':param key: key
:param last_modified: str  format: "Mon, 18 Nov 2013 09:02:42 GMT"
:param obj_size: too big object should not be cached
:param expires: seconds to expire
:param info_dict: custom dict contains information, stored in memory, so can access quickly
:type key: str
:type last_modified: str
:type info_dict: dict or None
:type obj: Any'

def put_obj(self, key, obj, expires=DEFAULT_EXPIRE, obj_size=0, last_modified=None, info_dict=None):

    if ((expires <= 0) or (obj_size > self.max_size_byte)):
        return False
    self.delete(key)
    temp_file = tempfile.NamedTemporaryFile(prefix='zmirror_', suffix='.tmp', delete=False)
    pickle.dump(obj, temp_file, protocol=pickle.HIGHEST_PROTOCOL)
    cache_item = (temp_file.name, info_dict, int(time.time()), expires, _time_str_to_unix(last_modified))
    temp_file.close()
    self.items_dict[key] = cache_item
    return True
