javascript - NiodeJS/如何在不下载的情况下找到外部托管图像的大小?
问题描述
我需要在文档中找到外部托管图像的大小/元数据(例如,其中包含图像标签的降价文档),但需要在不实际下载图像的情况下执行此操作。
有什么方法可以在 NodeJS/ExpressJs 上使用 javascript 轻松做到这一点?一些解决方案已有多年历史,不确定现在是否有更好的方法。
解决方案
您可以通过仅在调用图像时抓住HEAD
而不是使用 a 来执行评论中建议的操作。GET
使用got或任何你喜欢的东西(http、axios 等)你设置method
为HEAD
并查找content-length
.
我的示例程序抓取 twitter favicon,仅标题,如下所示:
const got = require('got');
(async () => {
try {
const response = await got('https://abs.twimg.com/favicons/twitter.ico', { method: 'HEAD' });
console.log(response.headers);
} catch (error) {
console.log('something is broken. that would be a new and different question.');
}
})();
在回复中,我看到了我需要的行:
'content-length': '912'
如果服务器不尊重HEAD
或不返回content-length
标头,则您可能不走运。
推荐阅读
- python - Python 标记化文本:如何将标记化列表转换为字符串?
- python - Hive UDF 与 Python 错误代码返回代码 20001
- python - 如何使用 Beautiful Soup 获取元素的位置?
- java - Spigot忽略命令的第一个参数
- shell - 仅基于第 2 列对 csv 文件进行排序。如果第 2 列的 2 行相同,则应仅输入文件顺序。不应基于任何其他列进行排序
- haskell - 理解简单的 Haskell
- python - 如何使用 python 正则表达式将字符串转换为字典
- postgresql - 在 Postgres 中以 ddMMYYYY 格式在日期之间搜索
- c# - 如何在尝试添加到列表之前检查属性是否存在
- python - to_datetime 无法识别熊猫中的日期“2015 年 10 月 20 日”