1
我正在嘗試使用ssh2-sftp庫在Node中讀取/寫入文件。當我在sftp站點上對更大的CSV文件(但不是太大 - 如2 MB)執行sftp.get,然後讀取返回的流上的數據時,第14個流之後的呼叫掛在我身上。 (「數據」)呼叫。我已經用幾個不同的示例文件測試過這些代碼,並且代碼在較小的文件上工作正常。但是,如果一個CSV文件足夠大以至於無法通過第14次調用,那麼它就會掛起,就好像它不能再讀取一樣,即使有更多需要閱讀的文件。並且stream.on(「關閉」)也不會被調用。使用ssh2 sftp讀取較大的sftp文件節點
顯然這是非常奇怪的行爲。希望也許有人遇到類似的問題,並使用這個庫,並提供一些指導。
如果有幫助可言,這裏是一些代碼
sftp.get(currentFileName).then((readStream) => {
var counter = 0;
readStream.on("data", function(d) {
counter++;
console.log("counter = " + counter);
});
readStream.on("close", function(err) {
if (err) {
console.error("Problem with read stream for file " + currentFileName + ", error = ", err);
}
//done reading the individual file, all went well
else {
console.log("done reading the stream");
}
});
readStream.on('error', function(e){
console.error("Error retrieving file: " + e);
})
readStream.resume();
,第14屆呼叫到readStream.on(「數據」)之後,它只是凍結了。也許有一半的文件被讀取。