如何从url加载图像到nodejs中的缓冲区

新手上路,请多包涵

我是 nodejs 的新手,正在尝试设置一个服务器,从中获取图像的 exif 信息。我的图像在 S3 上,所以我希望能够将 s3 url 作为参数传递并从中获取图像。

我正在使用下面的 ExifImage 项目来获取 exif 信息并根据他们的文档:

“除了在文件系统中提供图像的文件名之外,您还可以将缓冲区传递给 ExifImage。”

如何从 url 将图像加载到节点中的缓冲区,以便将其传递给 ExifImage 函数

ExifImage 项目: https ://github.com/gomfunkel/node-exif

谢谢你的帮助!

原文由 CodeMonkeyB 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
2 个回答

尝试像这样设置请求:

 var request = require('request').defaults({ encoding: null });
request.get(s3Url, function (err, res, body) {
      //process exif here
});

encoding 设置为 null 将导致请求输出缓冲区而不是字符串。

原文由 Dan Kohn 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 公理

 const response = await axios.get(url,  { responseType: 'arraybuffer' })
const buffer = Buffer.from(response.data, "utf-8")

原文由 Depp Wang 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题