我想通過HTTP POST請求發送文件,然後讓Mule使用FTP將文件上傳到服務器上的文件目錄。它看起來像FTP連接器將有效負載保存到文件目錄,但是這是通過爲空,並通過FTP將空文件寫入目錄。如何發送HTTP請求中的文件,並通過Mule上傳到文件服務器
我已經有一些成功的二進制/八位字節流作爲raml和http請求中使用郵遞員的媒體類型,但該文件不打開,看起來像它可能會損壞,當我使用表單數據作爲raml和http請求中的媒體類型,它顯示爲message.inboundAttachments中的一個鍵值對,但是如何從inboundAttachments中獲取要寫入的FTP連接器。我已經嘗試將它設置爲顯示爲javax對象的有效負載,但在將其寫入文件目錄時存在問題。我該如何做到這一點,最好的方法是什麼?文件將是文件> = 1,並且可能是不同的文件類型。我目前只是用一個文件來測試它。
此外,寫入文件時名爲28f42420-b325-11e7-8ffb-dcb320524153.dat。如何指定名稱,因爲它看起來像message.inboundProperties.originalFilename爲空?
我正在使用Anypoint Studio 6.2和Mule 3.8.3和Postman進行http調用,因爲Mule控制檯似乎沒有給出在請求中發送文件的選項。
在答覆中提到的腎錯構瘤
/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:
當前XML流
<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>
感謝
謝謝。我正在尋找文件名作爲原始文件名+時間戳。有沒有辦法獲得這些信息? message.inboundProperties.originalFilename顯示爲空 – user3165854
使用 #[payload.dataSource.part.fileName]獲取附件的名稱.. –
非常感謝您的幫助。它清除了很多關於如何傳遞Mule中的文件的查詢。謝謝 – user3165854