Я пытаюсь прочитать из CSV, преобразовать каждую строку в новый файл, и все эти файлы помещаются в ZIP-файл.
const csv = require('csv-parser');
const archiver = require('archiver');
const fs = require('fs');
cosnt transformTheRow = require('./transformTheRow'); // it takes a row/object and returns a string
let output = fs.createWriteStream('out.zip');
let archive = archiver('zip');
fs.createReadStream('my-big.csv')
.pipe(csv())
.on('data', (data) => {
const { name, prefix } = data
let big-ishString = transformTheRow(data);
let otherBig-ishString = transformTheRow(data, "it's different');
archive.append(big-ishString, {name, prefix });
archive.append(otherBig-ishString, {name: `${name}_different`, prefix: `${prefix}_different` });
})
.on('end', () => {
archive.finalize();
console.log('Yay');
});
Я продолжаю убивать процесс. Я предполагаю, что попытка добавить в архив в .on('data',...)
не может идти в ногу с .pipe(csv())
.
Что еще я пробовал / смотрел:
* Я пытался установить oomadjдо -17;Я не уверен, правильно ли я это сделал. В любом случае, это не сработало.
* Они знают, сколько раз они добавляли в архив: ( Динамически создавайте и передавайте zip-данные клиенту )
* Передача в архив:
archive.on('data', doStuffToAppendDataToArchive)//same as .on('data') from above
fs.createReadStream('my-big.csv')
.pipe(csv())
.pipe(archive)
Бонусные баллы, если вы можете помочь мне транслировать этот архив непосредственно на S3 или записать его на диск. Я видел , как передать архив (zip) в корзину S3 , но я не полностью следовал этому.
Спасибо.