【发布时间】:2010-11-24 04:42:00
【问题描述】:
抱歉标题不好。
我正在保存网页。我目前使用 1 个 XML 文件作为索引。一个元素包含文件创建日期 (UTC)、完整 URL(w. 查询字符串等等)。并且标题在一个单独的文件中,名称相似但附加了特殊的扩展名。
但是,对于 40k(包括头)文件,XML 现在是 3.5 MB。最近还在看书,添加新条目,保存这个 XML 文件。但现在我把它保存在内存中,每隔一段时间保存一次。
当我请求一个页面时,在 XML 文件上使用 XPath 查找 URL,如果有条目,则返回文件路径。
目录结构是 .\www.host.com/randomFilename.randext
所以我正在寻找更好的方法。
我在想:
- 每个 XML 文件。域(包括子域)。但我觉得这可能很麻烦。
- 使用 SVN。我刚刚对其进行了测试,但我没有大型存储库的经验。每次下载都执行 svn add "path to file",完成后提交。
- 创建一个自定义文件系统,然后我可以在其中包含我想要的所有内容,例如。 POST 数据。
- 从 URL 生成文件名并以某种方式展平查询字符串,但操作系统可能会拒绝大型查询字符串。如果我将它与标题一起保存,我仍然需要跟踪映射到每个不同查询字符串的多个文件。麻烦。而且我也不希望它执行得太慢。
多个程序实例将在不同的计算机上执行读/写操作。
如果我遵循目录/文件方法,理论上我可以在两者之间添加一个层,以便它即时使用DotNetZip。但话又说回来,查询字符串。
我只是在这里寻找方向或经验。
我还想要保留这些文件的历史记录的能力,这样本地文件就不会被覆盖,然后我可以选择我想要的版本(按日期)。这就是我尝试 SVN 的原因。
【问题讨论】:
标签: c# caching filesystems webpage flat-file