Сохранять метаданные изображения, используя fetch - PullRequest
0 голосов
/ 03 июня 2018

Я использую fetch для загрузки изображений с удаленного сервера и последующей загрузки в хранилище 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()

Любая помощь высоко ценится!

1 Ответ

0 голосов
/ 03 июня 2018

Приведенный выше код работает нормально - проблема заключается в следующем модуле.

...