пытается извлечь файл из корзины s3 и сохранить его на локальном компьютере, после того, как он записан в локальный файл, считывая файл из локального файла, преобразовывая данные в формат json и отправляя его.
мне нужнопроверьте, загружен ли файл и записан ли он локально, как только файл существует, только прочитайте и преобразуйте его в json, иначе отправьте сообщение об ошибке.
как только файл будет открыт, я пишу файл и заканчиваю работу.Поэтому после завершения я не могу отправить возвращаемое значение.Так как я могу решить эту проблему и использовать try catch для отправки правильного сообщения об ошибке.
const fetchFileDownloadAndWriteIt = () => {
let Bucket = "DataBucket";
let filename = "sample_data.csv";
let s3 = new AWS.S3();
const params = {
Bucket: Bucket,
Key: filename
};
return s3.getObject(params)
.promise()
.then(data => {
const file = fs.createWriteStream('./localdata/' + filename);
file.on("open", () => {
file.write(data.Body);
file.end();
})
.on("error", err => {
console.log("Error Occured while writing", err.message)
})
})
.catch(err => {
console.log("unable to fetch file from s3 Bucket", err.message)
})
}
exports.fetchData = async (req,res) => {
let fileDownloadAndWrite = await fetchFileAndDownloadWriteIt();
// need to check file is downloaded and written properly
const path = "./localdata/sample_data.csv";
const json = await csv().fromFile(path);
res.send({data: json})
}