【问题标题】:How to create a multer file from an image url如何从图像 url 创建 multer 文件
【发布时间】:2020-06-25 03:10:38
【问题描述】:

我需要首先从公共 url 下载图像,将下载的图像文件转换为 multer 文件,以便我可以调用现有的 api,然后上传 multer 文件。我已经尝试过 axios responseType: "blob"responseType: "arraybuffer",但我无法将这两个响应都转换为 Express.Multer.File。我有点需要它是一个 multer 文件,因为在我们上传到我们的 s3 存储之前,我们还从 multer 文件缓冲区生成哈希值。使用打字稿我想出了这样的事情:

let imageResponse = await axios.get(imageURL, { responseType: "arraybuffer" });
let file: Express.Multer.File = {
             buffer: Buffer.from(imageResponse.data, "binary"),
             fieldname: "fieldname",
             originalname: "imageName.jpg",
             encoding: "binary",
             mimetype: "image/jpg",
             destination: __dirname,
           }

我知道这看起来非常错误,但我不知道如何解决这个问题。

【问题讨论】:

  • 在这种情况下,您不需要使用multer,下载文件并直接保存到您喜欢的位置。示例代码在这里stackoverflow.com/questions/11944932/…
  • 我确信我可以做到这一点,但如果我在没有先转换为 multer 文件的情况下上传,那么我无法从 multer file.buffer 中生成我们需要的哈希

标签: node.js typescript express blob multer


【解决方案1】:

在不转换为 multer 文件的情况下解决了这个问题,而只需制作一个具有缓冲区属性的类似文件的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2014-08-28
    • 2012-01-09
    • 2016-03-25
    • 2017-04-22
    • 2021-07-12
    相关资源
    最近更新 更多