Я пытаюсь загрузить изображения в aws-s3 через подписанный URL-адрес с сервера NodeJS (не из браузера). Изображение для загрузки было сгенерировано NodeJS. Я получаю подписанный URL-адрес от aws и успешно загружаю его на s3.
Но мое изображение повреждено. По какой-то причине S3 добавляет несколько заголовков к моему изображению (сравните прилагаемое изображение).
Что я делаю не так?
получая подписанный URL:
try {
var params = {
Bucket: bucketName,
Key: 'FILE_NAME.png',
Expires: 60
};
const url = await s3.getSignedUrlPromise('putObject', params);
return url;
} catch (err) {
throw err;
}
загрузка на s3
var stats = fs.statSync(filePath);
var fileSizeInBytes = stats["size"];
const imageBuffer = fs.readFileSync(filePath);
var formData = {
'file': {
value: imageBuffer,
options: {
filename: 'FILE_NAME.png'
}
}
};
request({
method: 'put',
url,
headers: {
'Content-Length': fileSizeInBytes,
'Content-MD': md5(imageBuffer)
},
formData
}, function (err, res, body) {
console.log('body',body);
});
Сравните фактическое изображение с загруженным изображением на s3. S3 добавил несколько заголовков: