Javascript 使用fetch保留图像元数据

Javascript 使用fetch保留图像元数据,javascript,node.js,amazon-s3,fetch,node-fetch,Javascript,Node.js,Amazon S3,Fetch,Node Fetch,我正在使用获取从远程服务器下载图像,然后上传到AWS S3存储。下载、设置内容类型和上传工作正常,但在此过程中,我丢失了图像中的图像元数据(例如版权、拍摄日期、相机等)。我已经做了广泛的研究,但看不到如何使用fetch来获取它,也看不到它是否在这里或aws PutObject调用中丢失。如果需要的话,我愿意使用fetch以外的方法来解决问题 const fetch = require('node-fetch'); let ext = imageURL.split

我正在使用获取从远程服务器下载图像,然后上传到AWS S3存储。下载、设置内容类型和上传工作正常,但在此过程中,我丢失了图像中的图像元数据(例如版权、拍摄日期、相机等)。我已经做了广泛的研究,但看不到如何使用fetch来获取它,也看不到它是否在这里或aws PutObject调用中丢失。如果需要的话,我愿意使用fetch以外的方法来解决问题

        const fetch = require('node-fetch');

        let ext = imageURL.split("?")[0].split(".").pop();
        //  console.log(ext);
        let contType = "";
        switch (ext.toLowerCase()) {
            case "jpg":
                contType = "image/jpeg";
                break;
            case "jpeg":
                contType = "image/jpeg";
                break;
            case "png":
                contType = "image/png";
                break;
            case "gif":
                contType = "image/gif";
                break;
            case "svg":
                contType = "image/svg+xml";
                break
            default:
                contType = "application/octet-stream";

        }
        console.log(`Using content type ${contType} for ${ext}`);
        let response = await fetch(imageURL);
        if (response.ok) {

            let buffer = await response.buffer()

            await s3.putObject({
                Bucket: config.bucket,
                Key: "images/" + filename + "." + ext,
                Body: buffer,
                ContentType: contType,
                //MetadataDirective: "COPY"
            }).promise()

非常感谢任何帮助

上面的代码运行良好-实际上在下一个模块中我们遇到了一个问题

您是如何确认图像一开始就有元数据的?这里应该没有任何东西可以开始修改图像元数据。(MetadataDirective是关于对象元数据的,这完全是一件不相关的事情)。谢谢Michael-通过重新查找您的评论,我可以看到实际上是在代码之后的另一个模块中,我们正在丢失元数据-而不是上面的代码。我会把这个关上的,抱歉。