AsyncFetcher 会在没有目录时尝试创建，并容忍非规范路径
把不同用户的缓存保存在以各自 UID 命名的目录下