Я пытаюсь загрузить изображение на S3, но я продолжаю обнаруживать, что изображения телефона имеют повернутые изображения, и я узнал, что это происходит из-за данных EXIF. Я нашел эту библиотеку с именем graphicsmagick, которая предназначена для того, чтобы иметь возможность избавиться от данных EXIF, и я также решил, что хочу уменьшить размеры изображений до 500 пикселей в ширину и получить любую высоту.
Проблема, которую я не могу понять, заключается в том, как получить файл после его изменения. Кажется, что во всех примерах graphicsmagick показано, как записать изображение в файл на диске, но я хочу взять данные файла и загрузить их в AWS S3.
Пока у меня есть:
let file_extension = file.name.split('.').pop();//grab the file extension of for saving in the db
let key = `${user_id}/${UUID()}.${file_extension}`; //create a unique key to save in S3 based on users id
let params = {Bucket: S3_name, Key: key, Body: file.data};
//resize image
let new_image = gm(file.data)
.resize(500)
.noProfile()
.write() <-- this is as far as I got.
//upload
let result = new Promise(resolve=>{
s3.upload(params, function(err, result){
if (err) {
throw new Error('Could not upload photo');
}else {
resolve(result);
}
})
});
result = await result;