URLDownloadToFile()在作为服务运行时将对象写入缓存中

时间:2014-12-17 05:11:44

标签: c++ caching wininet

我有一个软件可以将图像下载到工作目录中,然后处理它们以创建视频;之后,这些文件将被一个独立的脚本删除。

问题是它还将文件写入以下目录(该软件作为系统服务运行):

C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5

更糟糕的是,似乎并没有限制保存的文件数量;由于硬盘短缺,这会导致服务器问题。

为了防止文件被缓存,我们尝试了以下方法:

  1. 使用服务器上的Pragma:Cache-Control:标头来阻止客户端缓存;

  2. 下载完成后,使用DeleteUrlCacheEntry()删除缓存条目;返回ERROR_FILE_NOT_FOUND;

  3. 使用IBindStatusCallback::GetBindInfo()并将传递的grfBINDF设置为BINDF_NOWRITECACHE|BINDF_PRAGMA_NO_CACHE|BINDF_GETNEWESTVERSION
  4. 不幸的是,上述方法并未阻止缓存文件仍被写入互联网缓存。

    有没有我错过的东西?

0 个答案:

没有答案