【问题标题】:Is it more efficient for severs to send an image file or a path to an image file to the client?服务器向客户端发送图像文件或图像文件的路径是否更有效?
【发布时间】:2020-05-02 16:31:30
【问题描述】:

我正在使用 express js 向 Angular 应用程序提供文件,我正在这些方法之间做出决定:

res.status(201).json({ imagepath: '<URL>' });

res.sendFile('<URL>');

我认为发送 url 会强制进行额外的往返,所以我应该使用 sendFile,但我想仔细检查。我有什么遗漏吗?

【问题讨论】:

  • 如果你只是想发送图像文件,你应该只发送二进制文件。但是您必须确保做的另一件事是设置Content-type 标头,以便接收者知道这是什么类型的图像/文件
  • 两者都可以正常工作。如果出于某种原因需要通过 URL 直接请求此图像文件,因此您已经有了提供此图像文件的路由,那么最简单的方法是发送该 URL 或重定向到该 URL,而不是以两种不同的方式提供图像并保持你的服务器逻辑更简单。

标签: node.js express server


【解决方案1】:

最好的选择是将图像文件存储在 AWS S3 之类的东西上,然后使用您的 Express 应用程序发送文件 URL。您将使用aws-sdkhere 将图像保存到S3(详细文章here)。然后您将该图像的 URL 位置发送到您的数据库进行存储。

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 2020-10-22
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多