Записывать блоки данных в файл S3 через поток вместо создания временного файла Node.js - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь записать порции данных в формате CSV в файл в Amazon S3 вместо записи во временный файл через WriteStream, затем создания ReadStream для этого файла и отправки его в S3.Моя программа извлекает строки данных из базы данных, обрабатывает их, а затем форматирует каждую строку в CSV, как это происходит, используя S3 upload () api

let recordsCSVFormatted;
let offset = 0;
const batchSize = 500;
const writer = fs.createWriteStream('./someFile.csv')

do {
  recordsCSVFormatted = await getRecords(limit, offset); // gets records from DB, formats it in CSV string
  writer.write(recordsCSVFormatted);
  offset += batchSize;
} while (typeof recordsCSVFormatted === 'undefined' || (recordsCSVFormatted && recordsCSVFormatted.length))

const reader = fs.createReadStream('./someFile.csv');

// just assume here that Key and Bucket are provided in upload, they are in actual code
await new AWS.S3({...s3Opts}).upload({Body: reader}).promise() // pass the readable in here for AWS

Как я могу пропустить шаг создания временного файла и затем передатьфайл в AWS как поток?Я хочу иметь возможность напрямую передавать фрагменты информации CSV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...