首页 > 解决方案 > NiodeJS/如何在不下载的情况下找到外部托管图像的大小?

问题描述

我需要在文档中找到外部托管图像的大小/元数据(例如,其中包含图像标签的降价文档),但需要在不实际下载图像的情况下执行此操作。

有什么方法可以在 NodeJS/ExpressJs 上使用 javascript 轻松做到这一点?一些解决方案已有多年历史,不确定现在是否有更好的方法。

标签: javascriptnode.jsecmascript-6axios

解决方案


您可以通过仅在调用图像时抓住HEAD而不是使用 a 来执行评论中建议的操作。GET

使用got或任何你喜欢的东西(http、axios 等)你设置methodHEAD并查找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标头,则您可能不走运。


推荐阅读