NEWS
Datei auf win7-Laptop löschen
-
Hat sich erledigt.
Unlink klappt.
-
Habe mein System auf einem neuen Win10 Laptop mit der stabilo-version mal neu aufgesetzt.
Nun funktioniert der "fs.unlink" nicht mehr.
Auch der einfache Test mit :
var fs = require('fs'); fs.unlink('//ASUS-BUERO/iobroker/Daten/test.txt');
klappt nicht.
Hat hier jemand mal einen Tipp für mich.
Hat sich durch die stabilo-Version etwas geändert ?mfg
Dieter -
So, habe den Scriptteil nun auf beiden Rechner probiert.
Win7 mit alter iob Installation: unlink klappt
Win10 mit iob stabilo: unlink klappt nicht; Fehler im log.
Es liegt also entweder an
Win10 oder an der neuen Installationroutine von stabilo...Kann mir irgend wer mal helfen ?
wie grenze ich das ganze ein ?mfg
-
Kannst Du das Script bitte um eine Fehlerausgabe ergänzen? So z.B. in etwa:
fs.unlink('path/file.txt', (err) => { if (err) throw err; console.log('path/file.txt was deleted'); });
Genau so kann es sich um ein Rechteproblem handeln. ioBroker hat nur eingeschränkte Rechte auf dem System. Aber das bekommen wir heraus.
-
ok, Script geändert in:
var fs = require('fs'); fs.unlink('//FUJITSU-BUERO/iobroker/Daten/test.txt', (err) => { if (err) throw err; console.log('path/file.txt was deleted'); });
Im Log kommt:
host.Fujitsu-Buero 2019-07-27 06:59:58.118 error instance system.adapter.javascript.0 terminated with code 0 (OK) host.Fujitsu-Buero 2019-07-27 06:59:58.118 error Caught by controller[0]: path: '\\\\FUJITSU-BUERO\\iobroker\\Daten\\test.txt' } host.Fujitsu-Buero 2019-07-27 06:59:58.118 error Caught by controller[0]: syscall: 'unlink', host.Fujitsu-Buero 2019-07-27 06:59:58.118 error Caught by controller[0]: code: 'EPERM', host.Fujitsu-Buero 2019-07-27 06:59:58.118 error Caught by controller[0]: errno: -4048, host.Fujitsu-Buero 2019-07-27 06:59:58.118 error Caught by controller[0]: ] host.Fujitsu-Buero 2019-07-27 06:59:58.118 error Caught by controller[0]: { [Error: EPERM: operation not permitted, unlink '\\FUJITSU-BUERO\iobroker\Daten\test.txt'
mfg
Dieter -
copy Befehl klappt nicht:
var fs = require('fs'); fs.copyFile("//FUJITSU-BUERO/SmartHome/node_modules/iobroker.sayit/sayit.2.say.mp3","//FUJITSU-BUERO/Daten/iobroker/1_Sound/2_sayit.mp3", (err) => { if (err) throw err; });
Im log kommt:
Hat dies auch was mit diesen Rechten zu tun?
-
Ich gehe davon aus. Der Windows-Benutzer, mit dem der ioBroker-Dienst läuft, hat IMHO (E-rror PERM-issions) nicht die erforderlichen Rechte, auf den Netzwerkshare zuzugreifen. Wenn der Share-Zugriff sein muss, dann entweder das Recht des Shares anpassen (Jeder/Gäste?) oder den ioBroker-Dienst mit einem Windows-Benutzer laufen lassen, der auf den Share zugreifen darf und der die für ioBroker nötigen lokalen Systemrechte hat.
-
Hallo Stabilo...
ich versteh nur bedingt was du meinst.
Aber ich bei "Jeder" auf die Ordner
...node_modules_iobroker.sayit ....
und
Netzlaufwerk
//fujitsu-buero...Vollzugriff erteilt.
Funktioniert aber trotzdem nicht.
-
Nochmal ganz konkret:
Was muss ich tun um die Datei "sayit.2.say.mp3" im Ordner ..node_modules/iobroker.sayit/..
auf einen Ordner zu kopieren, der freigegeben ist im Netz.Und diese kopierte Datei möchte ich dann auch löschen.
Mit der alten iob installation hat dies einwandfrei per script "fs-Befehle" geklappt.
mfg
-
So, ich habe aufgegeben.
Thema: Win10 und neuer iob staboli Version -> beendet !
Mit dem alten Rechner: Win7 und alter iob Version klappt dies einwandfrei.
Für mich erst einmal erledigt.
Benutze wieder meinen alten Rechner.
-
Bitte mal prüfen ob
js.unlink
Probleme hat mit node 10.
Ich meine das gelesen zu haben.
mfg
-
Kannst Du mir Dein Script zum Testen zur Verfügung stellen?
Jeder Netzwerkshare (=Freigabe) hat zwei Berechtigungen: einmal auf das Filesystem (Zugriffsberechtigungen auf Ordner und Dateien) das über die Freigabe freigegeben wird und einmal auf die Freigabe selbst (=wer darf die Freigabe auf welche Art (darüber lesend/schreibend) benutzen). Das muss beides zusammenpassen.
Das fs.unlink() Probleme mit Node.js 10 haben soll, ist mir neu. Hast Du einen Link?
-
@Stabilostick sagte in Datei auf win7-Laptop löschen:
Hast Du einen Link?
https://github.com/gruntjs/grunt-contrib-jasmine/issues/266
Habe aus meinem Script die beiden Baustellen raus kopiert:
fs.copy:// Dateien kopieren function Dateien() { setTimeout(function() { fs.copyFile("//ASUS-BUERO/ioBroker/iobroker-data/files/vis.0/mp3/" + getState('javascript.0.Status.Yamaha.Sound').val,"//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/1_sound.mp3", (err) => { if (err) throw err; }); }, 1000); setTimeout(function() { fs.copyFile("//ASUS-BUERO/ioBroker/node_modules/iobroker.sayit/sayit.2.say.mp3","//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/2_sayit.mp3", (err) => { if (err) throw err; }); }, 1500); if (logging) log('Dateien kopiert.'); }
fs.unlink:
// Dateien wieder löschen function Dateien_loeschen() { if (fs.existsSync('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/1_sound.mp3')) { // Datei ist vorhanden fs.unlink('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/1_sound.mp3'); if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/1_sound.mp3- wurde gelöscht"); } else { // Datei ist nicht vorhanden if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/1_sound.mp3- wurde nicht gelöscht"); } if (fs.existsSync('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/2_sayit.mp3')) { // Datei ist vorhanden fs.unlink('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/2_sayit.mp3'); if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/2_sayit.mp3- wurde gelöscht"); } else { // Datei ist nicht vorhanden if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/2_sayit.mp3- wurde nicht gelöscht"); } }
-
Nachtrag:
Win10 mit iob stabilio..:
installiert wurde node.js 10...
-> fs klappt nichtWin7 mit alter iob routine:
hier hab ich node.js 8.15.1
-> fs klappt -
Wie schaut die Freigabe \\ASUS-BUERO\iobroker aus?
- Kannst Du bitte einen Screenshot von der Rechteeinstellung machen, damit man die hinterlegten User/Gruppen und ihre Rechte auf der Freigabe sieht?
- Das gleiche auch für den Ordner, der freigegeben wird.
Sind die Rechner und User Mitglieder einer Arbeitsgruppe oder einer Domäne?
Danke für den Hinweis auf unlink.
-
Hallo stabilo
Jeder hat Vollzugriff.
Habs eben nochmal probiert.
fs funktioniert nicht unter node.js 10...
Oder anders: Ich bekomme es nicht hin.
Auf Win7 mit node.js 8.15 klappt es weiterhin.Konntest du dies schon mal nachvollziehen ?
-
Hallo,
ich habe mal eine Bitte.Könnte jemand mit node.js 10 mal probieren ob diese fs Befehle laufen.
Danke.
Bei mir gehen die o.g. Befehle jedoch nicht.
-
@Stabilostick sagte in Datei auf win7-Laptop löschen:
Ich gehe davon aus. Der Windows-Benutzer, mit dem der ioBroker-Dienst läuft, hat IMHO (E-rror PERM-issions) nicht die erforderlichen Rechte, auf den Netzwerkshare zuzugreifen. Wenn der Share-Zugriff sein muss, dann entweder das Recht des Shares anpassen (Jeder/Gäste?) oder den ioBroker-Dienst mit einem Windows-Benutzer laufen lassen, der auf den Share zugreifen darf und der die für ioBroker nötigen lokalen Systemrechte hat.
Ich stehe weiter dazu. Bei mir läuft z.B. fs.copyfile auch im Netzwerk ohne Probleme. Mit Node 10 (also genauer ab Node 8.5, weiterst ab da gibt es den copyfile-Befehl).
-
Hallo
was ihr mal checken solltet falls der Zugriff von Windows10 auf ältere Geräte nicht funktioniert:
Dort muss ein Haken rein, sonst versteht Win10 diese älteren Protokolle nicht mehr. Wurde seitens MS stillschweigends deaktiviert weil das Protokoll "unsicher" ist...
-
@Thisoft sagte in Datei auf win7-Laptop löschen:
was ihr mal checken solltet falls der Zugriff von Windows10 auf ältere Geräte nicht funktioniert:
Danke für die Info.
Das schau ich mir an.