2016-07-12 10 views
0

Ich muss eine lokale Datei auf s3 hochladen und speichern Sie ihren Link in der Datenbank. Momentan konvertiere ich das Image in base64 und sende es an meinen Rails Server, der es auf s3 speichert und eine URL zurückgibt. Ich sende diese URL in der nächsten HTTP-Anfrage. Nun, wie wäre es, ich speichere es per Express erhalten Sie einen Link und dann verwenden Sie es für die Anfrage. Was ist der bessere Ansatz? Verwenden von Middleware oder Backend-Server?Image Upload: Base64 zu Server in Post-Anfrage oder Express Js Middelware

Antwort

1

Für den Datei-Upload empfehle ich Ihnen, multer Middleware zu verwenden, da native Multipart-Implementierung ein wenig schwierig ist. Zur Interaktion mit Amazon wird s3 Middleware verwendet.

Datei zu verschicken woanders Rohre verwenden:

fs.createReadStream(rqPath).pipe(res); 

In obigem Beispiel wird Datei lesen von lokalem System und verrohrt zur Antwort.

Alle genannten Module bei NPM

+0

Und es ist der bessere Ansatz richtig? Was ist mit dem Senden von Base64 in Post-Anfrage an Rails Server? – RBS

+0

Meiner bescheidenen Meinung nach müssen Sie die Datei nicht in Binär-zu-Text-Codierung konvertieren. Holen Sie es einfach in den Knoten und leiten Sie es in alle Richtungen. Auf der RoR-Seite verbessern Multipart-/Formulardaten die App-Leistung. Die beste Möglichkeit, Dateien an RoR zu senden, ist dieses Modul http://npmjs.com/package/request –

0

zu finden sein könnte, wenn Sie immer noch diese versuchen, herauszufinden, ich mit dem gleichen Problem zu kämpfen hatte, entschied sich binäre Daten POST (von base64 umgewandelt) direkt in Körper ohne Behandlung mit mehrteiligen Formularen und gepeitscht das base64-image-upload Paket, um dies einfach zu machen.