在飞行拉链或焦油创建?

时间:2010-10-21 09:09:12

标签: asp.net dynamic zip ziparchive archive-tar

我可能不会为此烦恼,但如果它非常简单,我可以考虑一下。我正在设计的网站是拥有数十万个文件。我不知道我们是否只有一次下载或多次下载。现在选择是A)只是文件B)具有文件+许可证和条件的存档。

我试图弄清楚提供这两者并使用类似file.open/read之类的东西,在它之前和之后包含许可证和其他zip内容的前缀。我最担心的是进行文件打开/读取不会像让服务器传输文件那样高效,如果很难生成并动态更改zip的内容(如果用户希望更改许可证或者我们想要添加其他数据,如作者描述,作者URL和网站上的永久链接)

它是否有效?如何仅动态创建文件从原始文件和从数据库中提取的数据?

PS:我使用的是使用xsp.net和mono的debian / apache / asp.net。

2 个答案:

答案 0 :(得分:0)

SharpZipLib是一个非常好的基于流的库,可用于创建存档文件。

答案 1 :(得分:0)

您可以使用zip库(System.IO.Packaging.ZipPackagedotnetzipSharpZipLib)或事件命令行程序(例如7zip)来压缩文件 。该库应该提供更好的性能。

然而,重要的是添加一个缓存层,即zip文件应缓存在文件系统中,以便在请求相同时可以直接提供。