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

Using SFTP File Name in Logic Apps

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

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

表达式最终为:

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

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

在尝试调试时,我决定将 "file name" 属性 写入服务总线队列的主体,然后从一个简单的 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

这是否意味着 "file name" 不是字符串而是字节数组之类的东西?如何让我的逻辑应用程序中的条件正常工作?

尝试更新

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

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

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