У меня есть три разных zip-файла, расположенных в одном каталоге под названием «data». Каждый zip имеет схожую структуру, если вы распакуете его: все они содержат один каталог, а внутри каталога много разных файлов csv.
В настоящее время я пытаюсь использовать readFile из модуля 'fs' для чтения каждого zip-файла индивидуально в память как буфер узла, используя следующую функцию:
/**
* Wraps readFile in a promise.
* @param path The location of the file to read: absolute path.
* @returns A buffer containing the contents of the file.
*/
public static readFileAsync(path: string): Promise<Buffer> {
return new Promise<Buffer>((resolve, reject) => {
fs.readFile(path, (err, data) => {
if (err) {
reject(err);
}
resolve(data);
});
});
}
После получения данных я хочу преобразовать их в base64. После преобразования в base64 я использую библиотеку JSZip для разбора base64 на объекты js.
Все это работает нормально, пока я не изучу результаты анализа строк base64: Все данные в моих отдельных zip-файлах объединены вместе . Все csvs из разных почтовых индексов читаются так, как если бы они исходили из одного почтового индекса.
Я попытался передать readFile как относительный, так и абсолютный путь к каждому отдельному zip-файлу. Это всегда приводит к тому, что все почтовые индексы читаются как один.
Можно ли использовать fs.readFile для чтения каждого zip-файла по отдельности в память?
Спасибо за любую помощь!