我需要首先从公共url下载图像,将下载的图像文件转换为multer文件,这样我就可以调用现有的api,然后上传multer文件。我尝试过axiosresponseType: "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文件的情况下解决了这个问题,而只是制作一个具有缓冲区属性的类似文件的对象。