Ich möchte eine Datei in einer HTTP POST-Anfrage senden und dann Mule die Datei in ein Dateiverzeichnis auf einem Server per FTP hochladen. Es sieht so aus, als ob der FTP-Connector die Payload in das Dateiverzeichnis speichert, aber dies wird als Null durchgehen und eine leere Datei wird per FTP in das Verzeichnis geschrieben.Wie sende ich eine Datei in einer HTTP-Anfrage und lade sie per FTP in den Dateiserver in Mule
Ich hatte etwas Erfolg mit Binär/Oktettstream als der Medientyp in der Raml und HTTP-Anfrage mit Postman aber die Datei nicht geöffnet und sieht aus wie es möglicherweise beschädigt ist und wenn ich Formulardaten als die verwenden Media-Typ in der Raml und HTTP-Anfrage zeigt es als Schlüssel-Wert-Paar in message.inboundAttachments, aber wie bekomme ich den FTP-Connector aus inboundAttachments schreiben. Ich habe versucht, es als die Nutzlast einzustellen, die als ein javax Objekt aber Probleme zeigt, wenn es in das Dateiverzeichnis schreibt. Wie kann ich das machen und was ist der beste Ansatz? Dateien wären Dateien> = 1 und könnten verschiedene Dateitypen sein. Ich teste es gerade mit einer Datei.
Wenn die Datei geschrieben wird, heißt es auch 28f42420-b325-11e7-8ffb-dcb320524153.dat. Wie kann ich den Namen angeben, wie es aussieht? Message.inboundProperties.originalFilename ist null?
Ich benutze Anypoint Studio 6.2 und Mule 3.8.3 und Postman, um die http-Aufrufe als Mule-Konsole scheint nicht die Option zum Senden einer Datei in der Anfrage zu geben.
RAML
/ftp:
displayName: FTP Test
description: Send file to directory using FTP
post:
description: Send file
body:
binary/octet-stream:
multipart/form-data:
application/x-www-form-urlencoded:
properties:
file:
description: The file to be uploaded
required: true
type: file
responses:
200:
body:
application/json:
Aktuelle XML fließen
<flow name="sendFtpFile">
<set-payload value="#[message.inboundAttachments.file]" doc:name="Set Payload"/>
<ftp:outbound-endpoint host=${host} port="21" path=${filePath} user=${user} password=${pwd} connector-ref="FTP" responseTimeout="10000" doc:name="FTP"/>
</flow>
Dank
Danke. Ich suche nach dem Dateinamen als ursprünglichen Dateinamen + Zeitstempel. Gibt es eine Möglichkeit, diese Informationen zu erhalten? message.inboundProperties.originalFilename scheint leer zu sein – user3165854
Verwenden Sie # [payload.dataSource.part.fileName], um den Namen des Anhangs zu erhalten. –
Vielen Dank für Ihre Hilfe. Es hat viele Fragen geklärt, die ich hatte, um die Dateien in Mule zu übergeben. Vielen Dank – user3165854