2017-06-10 6 views
0

Ich versuche Bild Mäßigung Code implementieren Erwachsene oder gewalttätige Inhalte zu entfernen, wie hier angegeben: https://github.com/firebase/functions-samples/tree/master/generate-thumbnailChildProcessError für Bild Mäßigung Feuerbasis Funktion

Aber jedes Mal, ich erhalte diesen Fehler:

ChildProcessError: Command failed: convert /tmp/test folder/yes.jpg -channel RGBA -blur 0x8 /tmp/test folder/yes.jpg 
convert: unable to open image `/tmp/test': No such file or directory @ error/blob.c/OpenBlob/2712. 
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501. 
convert: unable to open image `folder/yes.jpg': No such file or directory @ error/blob.c/OpenBlob/2712. 
convert: unable to open image `/tmp/test': No such file or directory @ error/blob.c/OpenBlob/2712. 
convert: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501. 
convert: no images defined `folder/yes.jpg' @ error/convert.c/ConvertImageCommand/3210. 
`convert /tmp/test folder/yes.jpg -channel RGBA -blur 0x8 /tmp/test folder/yes.jpg` (exited with error code 1) 
    at callback (/user_code/node_modules/child-process-promise/lib/index.js:33:27) 
    at ChildProcess.exithandler (child_process.js:213:5) 
    at emitTwo (events.js:106:13) 
    at ChildProcess.emit (events.js:191:7) 
    at maybeClose (internal/child_process.js:877:16) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) 

durch zu dieser Zeile:

// Blur the image using ImageMagick. 
    return exec(`convert ${tempLocalFile} -channel RGBA -blur 0x8 ${tempLocalFile}`); 

Und noch eine Hilfe, was am besten Weg, um Video zu moderieren statt Bild ist, das heißt, wenn ich, wenn das Video hochgeladen überprüfen will, ist nicht offen sive (erwachsen oder gewalttätig).

Jede Hilfe wird geschätzt.

Antwort

0

Danke fmw42 für Hilfe, es war dummer Fehler. Ausgabe im Befehl ist nur mit Leerzeichen, versuchen Sie, Leerzeichen im Ordnernamen zu vermeiden. Wie auch immer, wenn Sie Handle-Befehl haben wie:

return exec(`convert "${tempLocalFile}" -channel RGBA -blur 0x8 "${tempLocalFile}"`); 
1

Sie haben:

convert /tmp/test folder/yes.jpg -channel RGBA -blur 0x8 /tmp/test folder/yes.jpg

/tmp/test ist an zwei Stellen gibt und nur einen Weg. ImageMagick mag keinen Pfad ohne Bilddatei. Sie haben bereits die Ein- und Ausgabedateien mit Pfad als Ordner/yes.jpg. Aus diesem Grund Sie

unable to open image `/tmp/test': No such file or directory

Vielleicht bekommen Sie

convert /tmp/test/folder/yes.jpg -channel RGBA -blur 0x8 /tmp/test/folder/yes.jpg 

oder

convert /tmp/test/yes.jpg -channel RGBA -blur 0x8 /tmp/test/yes.jpg 

oder

convert folder/yes.jpg -channel RGBA -blur 0x8 folder/yes.jpg 

So sieht es aus wie Ihre Variablenersetzung oder Code mit Variablen gemeint ist falsch.

P.S. Wollen Sie den Alphakanal wirklich verwischen? Die Verwendung von -kanal RGBA wird dies tun. Wenn Sie den Alpha-Kanal nicht verwischen möchten, verwenden Sie -channel RGB. Sie können auch ein anderes Ergebnis ohne den Kanal RGBA erhalten.

+0

Ich versuchte alle drei genannten Weg, aber keinen Erfolg. Außerdem denke ich, dass der Code korrekt ist, weil er auch in der Firebase-Dokumentation erwähnt wird: https://firebase.googleblog.com/2017/06/content-moderation-with-cloud-functions.html Und bevor das Bluring erfolgreich heruntergeladen wurde, wird das Logbuch angezeigt : Die Datei wurde nach/tmp/test folder/yes.jpg heruntergeladen. –

+1

Wenn Ihre Datei tatsächlich heruntergeladen wurde Die Datei wurde in/tmp/test folder/yes.jpg heruntergeladen, dann müssen Sie den Pfad in Anführungszeichen setzen um Probleme mit Leerzeichen zu vermeiden. Verwenden Sie also "/ tmp/test folder/yes.jpg". Sie müssen ein Verzeichnis namens Testordner mit einem Leerzeichen haben. Ich vermeide generell Leerzeichen in Verzeichnissen oder Dateien. Aber Sie können sie verwenden, wenn Sie den Pfad angeben – fmw42

+0

Ja, es war nur mit Platzproblem, Danke, obwohl für Hilfe. –