2014-05-23 12 views
11

Robię pewne manipulacje plikami za pomocą node.js, a wiele używanych przeze mnie pakietów wymaga przesłania "ścieżki", aby mogły otworzyć plik, wykonać trochę pracy i tak dalej.Czy mogę przechowywać plik w "pamięci" za pomocą Node.js?

Ale parsuję miliony plików i zamiast zapisywać je na dysku, chciałbym je przechowywać w pamięci. Zawartość plików znajduje się w mojej bazie danych i nie chciałbym zapisywać ich na dysku, tylko po to, by wykonać moją niesamowicie niesamowitą pracę nad nimi.

Czy jest to możliwe?

+1

można skopiować plik w/dev/shm (lub/tmp jeśli jego tmpfs) podczas uruchamiania, a następnie z powrotem wynik końcowy –

+0

To brzmi jak buforowanie, szybkie wyszukiwanie doprowadziło mnie do tego? https://www.npmjs.org/package/node-cache. Oprócz odpowiedzi @guido, zapisz ją w dyrektywie tmp. Problem z używaniem pakietów wymagających "ścieżki" polega na tym, że zostały zaimplementowane za pomocą bibliotek I/O. Aby skorzystać z rozwiązania pamięciowego, należy również unikać tych bibliotek. –

+0

Nie znam rozmiaru twoich plików, ale na pewno nie będziesz w stanie przechowywać całkowicie wszystkich twoich danych w pamięci (RAM). – 0101

Odpowiedz

5

Wygląda na to, że to możliwe spojrzenie na ten artykuł jak to zrobić creating writable memory stream

+0

Ale co mam przekazać do pakietów, które wymagają ścieżki pliku? – Shamoon

+0

Utwórz tymczasowy plik, a następnie usuń – user3210416

+1

Wyszukaj alternatywne biblioteki, które są bardziej przyjazne strumieniowo. – Joe

3

Ponieważ nie znalazłem jedna biblioteka, która nadaje się do moich potrzeb, Stworzyłem diskette. Jest to niewielka biblioteka, która stara się efektywnie przechowywać dane, takie jak bufory i łańcuchy, i sprawić, aby były one przesyłane strumieniowo. Używam go w swoich własnych projektach i jak na razie działa jak urok.

Proszę dać mi znać, jeśli znalazłeś błąd lub czy jest coś więcej, które mogą być dodawane do niego.

3

Można użyć memfs, który jest systemem plików w pamięci dla pliku Node.js.

Powiązane problemy