StorageProvider的populating是什么?PopulationPolicy有什么作用?
核心概念区分
你对hydration的理解完全正确:这一过程指的是将云端存储的实际文件内容下载到本地占位符中,将仅包含元数据的占位符转换为可直接本地读取的完整文件,针对的是单个文件的内容层面。
而populating针对的是同步根的目录结构与元数据层面,指的是同步引擎将云端所有文件、目录的元数据(文件名、大小、修改时间等基础信息)同步到本地,生成对应占位符的过程,不需要下载文件实际内容,只需要保证用户在资源管理器中能看到对应的目录树条目。
PopulationPolicy两个枚举值的效果差异
Full
同步根注册完成后,要求同步引擎一次性拉取全量云端元数据,在本地生成完整的占位符目录树。后续运行过程中,允许出现未拉取元数据的“部分填充目录”:比如新增的远端目录如果用户没有主动点击浏览,同步引擎可以暂不同步该目录下的元数据,直到用户触发浏览操作时再加载。AlwaysFull
这是比Full更严格的约束:- 初始阶段同样要求全量拉取元数据生成完整目录树
- 运行全周期内都不允许出现“部分填充目录”,所有云端元数据变更必须实时同步到本地,用户任何时候访问任意目录都能直接看到完整子项,不会触发等待加载的逻辑
- 你注意到的和
HydrationPolicyModifier.ValidationRequired的相似性只是表层,二者管控维度完全不同:AlwaysFull管控元数据完整性,ValidationRequired管控文件内容读取时必须先持久化到本地磁盘,不存在功能重叠。
内容的提问来源于stack exchange,提问作者Thomas T
相关产品推荐
相关产品推荐

