在逻辑应用程序中使用SFTP文件名

时间:2017-01-25 00:59:17

标签: sftp azure-logic-apps

我有一个简单的逻辑应用程序,它使用SFTP连接器,后跟一个带有表达式的条件:

Object Name: File Name
Relationship: starts with
Value: '943'

表达式最终成为:

"@startsWith(triggerOutputs()['headers']['x-ms-file-name'], '''943''')"

但即使文件以943开头,条件也总是失败。

尝试调试时,我决定将“文件名”属性写入服务总线队列的主体,然后从简单的Windows应用程序中读取它。当将主体作为字符串获取时,它总是抛出异常。我不得不重写它以使用流来读取它。

代码失败:

Dim s as String = message.GetBody(of String)()

工作代码:

 Dim stream As Stream = message.GetBody(Of Stream)()
 Dim reader As StreamReader = New StreamReader(stream)
 Dim s As String = reader.ReadToEnd

这是否意味着“文件名”不是字符串,而是像字节数组那样的东西?如何让我的逻辑应用程序中的条件正常工作?

1 个答案:

答案 0 :(得分:0)

尝试更新

"@startsWith(triggerOutputs()['headers']['x-ms-file-name'], '''943''')"

"@startsWith(triggerOutputs()['headers']['x-ms-file-name'], '943')"

基本模式看起来会将 123 视为int,但在输入' 123' 时添加其他引号,因此您需要进行更改切换到高级模式。