Der Bedarf meiner Anwendung ist wie folgt: Ich lade das Bild in Cloudinary hoch und speichere die URL des Bildes in meiner mongodb-Datenbank.
Um das Bild in Cloudinary hochzuladen, musste ich den Dateipfad angeben, und dafür verwende ich multer.Ich verwende die Anweisung:
app.use (multer ({dest: './uploads /'}));
Das Problem ist, dass jedes Mal, wenn ich ein Bild von meinem lokalen System in die Datenbank von Cloudinary hochlade, eine lokale Kopie in './uploads/' erstellt wird. Ich möchte, dass dies nicht geschieht, da meine Bilder da sind auf Cloudinary.
Ich lese die Dokumentation von multer , wo es heißt:
Multer akzeptiert ein Optionsobjekt, das einfachste ist die Eigenschaft dest, die Multer mitteilt, wo die Dateien hochgeladen werden sollen. Wenn Sie das Optionsobjekt weglassen, wird die Datei umbenannt und in das temporäre Verzeichnis des Systems hochgeladen.
Ich kann nicht feststellen, ob dieser temporäre Upload-Speicherplatz gereinigt werden muss oder ob er bearbeitet wird. Meine Bilder werden auf Cloudinary hochgeladen. Ich habe Multer nur zum Abrufen verwendet:
req.files.photo.path
um zu arbeiten. Gibt es eine andere Möglichkeit, dasselbe zu tun, oder wenn multer so konfiguriert werden kann, dass Bilder nicht auf meinem lokalen System gespeichert werden?
Vor dem 14-07-2016 konnte multer
nicht konfiguriert werden, um Dateien lokal zu speichern.
Aber multer ist nur ein Wrapper von Busboy . Also können wir versuchen, busboy
direkt zu verwenden, wenn wir vermeiden wollen, die Platte zu treffen.
Connect-bubsboy wird hilf uns:
Update 14-07-2016
Jetzt hat multer MemoryStorage
, um Dateien im Speicher als Puffer zu speichern.