2016-11-21 1 views
3

Ich möchte einen NodeJS HTTP-Endpunkt mit Azure-Funktionen schreiben.Wie werden mehrteilige Formulardaten in einer Azure Function App mit HTTP Trigger analysiert? (NodeJS)

Dieser Endpunkt ist ein POST-Endpunkt, der Dateien aufnimmt und diese in den BLOB-Speicher hochlädt.

NodeJS Multipart-Formular-Datenparser sind jedoch alle in Form von httpserver oder expressJS Middleware.

Gibt es verfügbare Tools, die die mehrteiligen Formulardaten analysieren können, nachdem sie alle vom Wrapper der Funktionsanwendung empfangen wurden?

Danke!

Antwort

3

Da Azure Functions das HTTP-Serverobjekt in Node.js eingeschlossen hat und eine einfache req und context mit mehreren Funktionen verfügbar macht, finden Sie weitere Details unter https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node#exporting-a-function.

Und vor allem ist Azure-Funktionen für Trigger und Webhooks Anforderungen konzipiert, Sie können auf https://docs.microsoft.com/en-us/azure/azure-functions/functions-compare-logic-apps-ms-flow-webjobs für den detaillierten Vergleich verweisen.

Währenddessen können Sie die Antwort Image upload to server in node.js without using express zum Analysieren des Inhalts des Anforderungsbody auf Dateiinhalte und zum Hochladen auf Azure Storage mit Azure Storage SDK für node.js versuchen. Sie können benutzerdefinierte Knotenmodule über die KUDU-Konsole installieren. Weitere Informationen finden Sie unter https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node#node-version--package-management.

Und ich schlage vor, Sie können versuchen, Hebel Azure API App in node.js zu Ihrem Requiremnet nähern. Da es sich um ein Expressjs-basiertes Projekt handelt, wird es einfacher sein, Upload-Dateien zu verarbeiten.

Alle weiteren Bedenken, bitte zögern Sie nicht, lassen Sie es mich wissen.

+0

Scheint wie manuelle Analyse ist diese einzige Lösung für jetzt, obwohl dies für große Dateigruppen fehlschlagen kann. Ich bin mir der API-App-Lösung bewusst, aber es ist gut, eine Bestätigung zu erhalten, dass das mehrteilige Parsen nicht Teil des beabsichtigten Anwendungsfalls von Azure Function ist (vorerst) Vielen Dank! – dxthegreat

3

Sie können versuchen, diesen Adapter für die Nutzung von Funktionen auszudrücken, kann es erlauben Sie erfolgreich die mehrteilige Middleware zu verwenden, Sie wollen: https://github.com/yvele/azure-function-express

Als weniger wünschenswerte Option, können Sie den Körper selbst analysieren, alle die mehrteilige Daten werden in req.body verfügbar sein und so etwas wie folgt aussehen:

------WebKitFormBoundarymQMaH4AksAbC8HRW 
Content-Disposition: form-data; name="key" 

value 
------WebKitFormBoundarymQMaH4AksAbC8HRW 
Content-Disposition: form-data; name="" 


------WebKitFormBoundarymQMaH4AksAbC8HRW-- 

ich denke, es ist eine gute Idee zu unterstützen Http/besser ausdrücken, um diese Erweiterbarkeit zu ermöglichen.

+0

Es scheint, dass die meisten knotenbasierten mehrteiligen Lösungen (busboy, multer (basierend auf busboy), multiparty, ...) erwarten, dass 'req' ein Stream ist (' req.pipe (busboy) 'zum Beispiel). Es scheint nicht, dass das "req", das von der azure-Funktion bereitgestellt wird, oder das Umschließen mit azur-funktion-express dies unterstützt, obwohl ich etwas übersehen könnte. Ich würde gerne in der Lage sein, die multer Middleware mit [Mulder-Azure] (https://github.com/winsome/multer-azure) zu verwenden und es die Dateien direkt in azure Blob Speicher hochladen. –

Verwandte Themen