我已经实现了一个将 url 缓存到文件系统(Android java)的系统,工作方式如下:
给定一个 url,文件将下载到/one_folder/hash(url).file
对该 URL 的下一个请求首先检查该文件是否存在。如果是,则返回文件,否则重复下载。
问题是,如果没有实现额外的逻辑并且 url 处的文件发生更改,则永远不会检测到它(因为缓存总是成功)。
我该如何改进?是否有更好的系统为缓存文件分配过期日期并在过期时重新下载?
谢谢
最佳答案
下载文件时检查 HTTP header 。在那里您可能会找到缓存规则、内容过期日期等。
或者您可以发出 HEAD 请求而不是 GET 请求,并且仅获取 http header (而不是内容/文件)并比较上次修改或文件大小(内容长度)。
关于java - 检查一个 url 中的更新,无需下载整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405110/