':param working_dir: working directory of this storage
:param size: single block size, 4M as default
:param deduper: instance of :class:`~cola.core.dedup.Deduper`
:param mkdirs: force to make the working directory if True
:param create_lock_file: create the lock file if set to True'

def __init__(self, working_dir, size=STORE_FILE_SIZE, deduper=None, mkdirs=False, create_lock_file=False):

    self.lock = threading.Lock()
    self.store_file_size = size
    self.deduper = deduper
    self.dir_ = working_dir
    if (mkdirs and (not os.path.exists(self.dir_))):
        os.makedirs(self.dir_)
    self.create_lock_file = create_lock_file
    self.lock_file = os.path.join(self.dir_, 'lock')
    with self.lock:
        if (create_lock_file is True):
            if os.path.exists(self.lock_file):
                raise StoreExistsError('Directory    is    being    used    by    another    store.')
            else:
                open(self.lock_file, 'w').close()
    self.stopped = False
    self.inited = False
    self.legal_files = []
    self.file_handles = defaultdict((lambda : None))
    self.map_handles = defaultdict((lambda : None))
