HTTP POST要求でファイルを送信し、FTPを使用してサーバー上のファイルディレクトリにファイルをアップロードします。これは、FTPコネクタがファイルディレクトリにペイロードを保存するように見えますが、これはnullとして渡され、空のファイルはFTPによってディレクトリに書き込まれます。HTTPリクエストでファイルを送信し、FTP経由でMuleのFTP経由でファイルサーバーにアップロードする方法
Postmanを使用してramlとhttpリクエストのメディアタイプとしてバイナリ/オクテットストリームで成功しましたが、ファイルが開かず、破損している可能性があります。フォームデータをメディアタイプはramlとhttpリクエストでmessage.inboundAttachmentsのキー値のペアとして表示されますが、どのようにFTPコネクターをinboundAttachmentsから書き込むようにしますか。私はそれをjavaxオブジェクトとして表示するペイロードとして設定しようとしましたが、ファイルディレクトリに書き込む際に問題があります。私はこれをどのようにして行うことができ、取るべき最良のアプローチは何ですか?ファイルはファイル> = 1であり、異なるファイルタイプである可能性があります。私は現在、1つのファイルでそれをテストしています。
また、ファイルが書き込まれたときの名前は、28f42420-b325-11e7-8ffb-dcb320524153.datとなります。 message.inboundProperties.originalFilenameがnullのように、どのように名前を指定できますか?
Muleコンソールが要求にファイルを送信するオプションを表示しないため、Anypoint Studio 6.2とMule 3.8.3とPostmanを使用してhttpコールを行っています。
への答えで述べたように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:
現在のXMLは、API /エンドポイントをラバする複数のファイルを送信するために
<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