我正在尝试编写一个小型电子应用程序,该应用程序将某个文件夹的目录结构与Firebase同步,而忽略了实际内容。并且在用户重命名,删除或移动子代时努力设计低头的策略。
我要为模式使用类似的东西
contenst = {
f1 : {
name : 'Folder 1',
type : 'dir',
parent : null
},
f2 : {
name : 'cat.jpg',
type : 'file',
parent : 'f1'
},
f3 : {
name : 'Subfolder a',
type : 'dir',
parent : 'f1'
},
f4 : {
name : 'dog.jpg',
type : 'file',
parent : 'f3'
}
}
这是上述目录结构的简单形式。
+-- Folder1
|-- cat.jpg
+-- Subfoler_a
|--dog.jpg
现在每次启动应用程序时,我都必须重新同步目录结构,同时保持带宽使用率尽可能低。
当然,我可以读取整个目录并用它覆盖服务器一个目录,但是如果有成千上万个文件,这将是非常昂贵的。
我无法使用任何文件监视程序,因为如果应用程序关闭,那将无法正常工作。
一种解决方案是下载服务器存储的快照,并使用本地结构计算差异。这又意味着要下载整个树。
有没有更好的解决方案。
从问题标题可以明显看出,我只需要同步结构即可。文件内容无关紧要。