我想在大型图像文件 (+20MB) 发生变化时下载其副本。但如果不每隔 X 秒下载一次并将其与旧版本进行比较,我怎么知道图像是否已更改?否则会非常耗费带宽并且速度很慢。
有没有办法在图片完全下载之前确定其大小?那么,当尺寸发生变化时,就意味着图像也发生了变化。
我们可以在不下载两张图片的情况下比较它们吗(或者只下载前几千字节)?换句话说,图片是否包含大小信息或哈希值?或者类似的东西。
答案1
当服务器端文件较新时,Wget 仅允许您下载:
When running Wget with -N, with or without -r or -p, the decision
as to whether or not to download a newer copy of a file depends on
the local and remote timestamp and size of the file. -nc may not
be specified at the same time as -N.
答案2
方法 1:文件服务器可能允许目录访问。尝试访问然后解析父目录输出。示例:https://www.kernel.org/pub/site/
方法 2:在代码中,检索“content-length”标头字段以获取文件大小可能表示文件已发生改变。例如:https://stackoverflow.com/questions/2983073/how-to-know-the-size-of-a-file-before-downloading-it/12271781#12271781
方法 3:要求服务器管理员提供可供下载的校验和、新文件可用的通知或其他形式的 shell / 目录访问。