逻辑应用 Blob 文件内容大小在发布到 API 时发生变化

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

我有一个逻辑应用程序,它会定期列出 Blob 存储的内容并将找到的任何文件发布到 API,我认为它正在工作 - 至少在某些文件类型上。 但目前它正在查找 PGP 加密文件(即:myfile.txt.pgp),并且我发现该文件未正确发布到我的 API。 到达 API 后,文件大小(字节 [] 长度)几乎翻倍。

snapshot of the applicable flow

我的帖子正文:`

{
  "$content-type": "multipart/form-data",
  "$multipart": [
    {
      "body": "@{body('Get_blob_content_(V2)')}",
      "headers": {
        "Content-Disposition": "form-data; name=original;  filename=@{item()?['Name']}",
        "Content-Type": "@{item()?['MediaType']}"
      }
    },
    {
      "body": "@{item()?['Path']}",
      "headers": {
        "Content-Disposition": "form-data; name=fullname;"
      }
    },
    {
      "body": "@{item()?['Size']}",
      "headers": {
        "Content-Disposition": "form-data; name=blobsize;"
      }
    }
  ]
}

`

在上面的内容流中,blob 的内容长度为 4078,发布的“blobSize”反映了这一点 (4078)。 但在 API 中 - 发布的文件大小约为 7479(并且格式不正确,我无法解密 PGP)。

API 可以完美地上传相同的文件和其他表单参数(使用标准 Postman 或我的 UI)。 但是,当从逻辑应用程序调用 API 来发送 blob“文件内容”时,它会以某种不同的格式发送,并且我无法弄清楚如何正确解析它。

编辑:上传文本文件(未加密的PGP)时,我可以看到“文件内容”实际上返回文件的字符串内容。因此,看起来它实际上也在对 PGP 文件执行此操作,但字符串内容已加密且无用。 如何获取并发送原始文件二进制文件而不是字符串内容?

multipartform-data azure-logic-apps
1个回答
0
投票

当您获取内容时(通过获取 blob 内容操作),它会被

base64
加密。您可以使用函数
base64tobinary(<pass your base 64 content here>)

将其转换为二进制

在撰写操作中使用它并照常传递输出。

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