【发布时间】: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