2016-07-20 21 views
0

Ich habe versucht, eine Datei mit node.js in eine Netzwerkadresse zu schreiben/zu lesen.Nodejs: Datei in einen Unix-Netzwerk-Speicherort schreiben

Ich habe den Dateipfad wie hier vorgeschrieben verwendet: Use node js to access a local network drive.

Ich testete meinen Code auf Windows-Rechner und Netzwerkstandort war mein Arbeitsplatznetzwerk, wo viele Systeme sichtbar auf dem Netzwerk in Arbeitsplatz gesehen wurden. Ich konnte erfolgreich eine Datei zu einem dieser Netzwerksysteme lesen/schreiben.

Danach versuchte ich den gleichen Code mit einem UNIX-Rechner, für den ich einen Benutzernamen/ein Passwort und eine Maschine IP gegeben wurde.

Jedoch, wenn ich den gleichen Code mit Pfad lief änderte ich einen Fehler bin immer sagen:

{ [Error: UNKNOWN: unknown error, open '\\<IP-Address>\home\rstudio\work\ru 
    ing\helloWorld.txt'] 
     errno: -4094, 
     code: 'UNKNOWN', 
     syscall: 'open', 
     path: '\\\\<IP-Address>\\home\\rstudio\\work\\running\\helloWorld.txt' } 

Es folgt meinen Code:

var fs = require("fs"); 

fs.writeFile('\\\\<IP-Address>\\home\\rstudio\\work\\running\\helloWorld.txt', 'Hello World!', function (err) { 
    if (err) return console.log(err); 
    console.log('Hello World > helloWorld.txt'); 
}); 

Für Fenster, ich habe die Maschinennamen setzen statt der IP-Adresse.

Bitte lassen Sie mich den Grund für den Fehler wissen und auch, was ich tun soll, um erfolgreich Datei im zweiten Fall zu schreiben.

Antwort

0

Lokale Netzwerklaufwerke in Windows (Zum Beispiel Laufwerk W :) ist auch auf eingehängte Dateisysteme in UNIX (zum Beispiel/foo).

Wenn das Mounten korrekt ist, funktioniert die writeFile-API ohne Probleme, außer dass der Pfadspezifizierer der UNIX-Konvention entsprechen sollte (Schrägstriche statt doppelter umgekehrter Schrägstriche).

Wenn sich die Datei in einem anderen System befindet und das Dateisystem nicht gemountet ist, funktioniert dieser Mechanismus nicht. Sie benötigen ein Client-Server-Programmpaar zum Senden, Empfangen und Schreiben der Daten.

Hoffe, das hilft.

+0

Sie wollen also sagen, dass das Dateisystem, auf das ich vom Unix-System zugreifen möchte, nicht geladen ist? Wenn das der Fall ist, wenn ich das Dateisystem von Unix auf Windows mounte, kann ich den obigen Code erfolgreich ausführen? – ramasCoder

+0

Ich bezweifle, dass Sie aus zwei Gründen ein UNIX FS an Windows mounten: i) das Low-Level-Dateiformat der beiden sind unterschiedlich, und ii) UNIX fs Zugriff immer Authentifizierung erfordern, so dass ein Direct-Mount-Modell nicht möglich scheint. Ich bin jedoch kein Experte auf diesem Gebiet, daher kann ich hier keine näheren Angaben machen. –