Я пытаюсь получить данные из файла из корзины s3 и записать их во временный файл, а затем прочитать данные из этого временного файла.Файл был успешно создан, и данные, представляющие собой некоторый html, показанный во временном файле, но когда я пытаюсь console.log на следующем шаге, он возвращает пустой.
try {
...
const params = {Bucket: "somebucket", Key: "file.html"}
let tempFile = fs.createWriteStream("./temp/file.html", 'utf8')
s3.getObject(params).createReadStream().pipe(tempFile)
fs.readFile('./temp/file.html', 'utf8', (err, data) => {
if (err) console.log(err)
else {
console.log("cannot get data?") //this shows up
console.log(data) // this one does not shows up
}
})
...
} catch {
...
}
Кто-нибудь имеет опыт в этом?
Обновление:
Я понимаю, что данные находятся внутри файла и могут нормально выводиться без части getObject (), но данные не могут быть отображены.Это может быть связано с тем, что файл читается до того, как данные полностью вставлены в файл.Как я должен изменить код, чтобы я мог отложить выполнение readFile после завершения вставки данных в файл.Я попробовал setTimeout, но не смог.