Azure 逻辑应用 SFTP-SSH 创建操作中的分块不起作用

问题描述 投票:0回答:2

我想要实现的目标:

  1. 通过 HTTP 将 >50MB 文件发送到逻辑应用程序
  2. 用于将文件保存到 SFTP 服务器的逻辑应用程序

我在 SFTP-SSH“创建文件”操作中遇到错误:

为创建或更新操作提供的文件大小“64065320” 使用非分块超出了允许的最大文件大小“52428800” 传输模式。请启用分块传输模式来创建或更新 大文件。

SFTP-SSH“创建文件”操作上的分块已启用。 覆盖块大小没有帮助。 使用“撰写”操作的主体作为“创建文件”的输入也没有帮助。

目前的工作流程:

SFTP-SSH“创建文件”操作参数:

SFTP-SSH“创建文件”操作设置:

错误:

关于错误原因有什么想法吗?

P.S.我想澄清这个问题;它涉及一个非常具体的工作流程:当通过 HTTP(“收到 HTTP 请求时”触发器)将大文件发送到逻辑应用程序时,需要将其保存到 SFTP 服务器。没有变形,只是按原样保存。我知道,当从其他地方(SFTP/blob/等)收集(拉取)大文件并将其保存到 SFTP 时,分块效果很好。但在这种情况下(将文件推送到逻辑应用程序)却不会。尽管在 Azure 逻辑应用程序中使用分块处理大消息一文首先指出“逻辑应用程序触发器不支持分块”和“对于支持分块并启用分块的操作,您不能使用触发器主体” ”,然后它给出了解决方法:“而是使用 Compose 操作。具体来说,您必须使用 Compose 操作创建一个 body 字段来存储触发器主体输出的数据。然后,在分块中引用该数据动作,使用@body('Compose')”。好吧,从我提供的屏幕截图中可以看出,这种解决方法对我来说不起作用。如果有人能澄清如何克服这个问题,我将不胜感激。

sftp azure-logic-apps
2个回答
0
投票

根据此文档,您向其发送请求的端点,通过发送启用 HTTP 连接器的部分数据来使用分块来下载整个数据。为了符合此连接器的限制,逻辑应用会将任何大于 30 MB 的消息拆分为更小的块。您可以通过 HTTP 拆分大型内容下载和上传,以便逻辑应用和端点可以交换大型消息。

您甚至可以参考这里,其中讨论了相同的主题。


0
投票

希望这有帮助,

讨论这里可以解决这个问题。在逻辑应用代码中,在撰写部分将

"inputs":"@variables()"
更改为
"inputs":{"body":"@variables()"}
,在 sftp 部分将
"body": "@inputs('Compose')"
更改为
"body": "@body('Compose')"

© www.soinside.com 2019 - 2024. All rights reserved.