На самом деле я допустил ошибку, послав неправильное значение для объекта «файл» в объекте formData. Правильный код выглядит следующим образом:
uploadToS3 = (imageUri, fileName, fileType, file,success, failure) => {
let body = new FormData();
let url=imageServer+fileName;
body.append('acl', 'public-read');
body.append('Content-Type',file.type);
body.append('key', fileName);
body.append('file',file);
return axios.post(imageServer,body)
.then(response => {
console.log('[AWS S3] Response ==> ', response)
this.props.addNewImage(url,this.props.arrayname);
return response;
}).catch(error => {
console.log('[AWS S3] Error ==> ', error)
return error;
})
}
_handleImageChange(e){
let reader = new FileReader();
let file = e.target.files[0];
console.log(file,'file');
reader.onloadend = () => {
let uri=reader.result;
let fileType = /^data:image\/\w+;/.exec(reader.result)[0].replace(/^data:image/,"").replace("/","").replace(";","");
let fileName='img'+`${new Date().getTime()}`+'.'+fileType;
console.log("filename",fileName);
this.uploadToS3(uri,fileName,fileType,file);
}
reader.readAsDataURL(file);
}