我需要先从公共网址下载图像,将下载的图像文件转换为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文件即可解决,而只需制作一个具有buffer属性的类似文件的对象。