Logic Apps从Sharepoint上传PDF至Azure Blob后文件空白问题求助
核心原因
你遇到的问题是重复编码导致的二进制数据损坏:Sharepoint返回的$content本身就是Base64编码的二进制内容,你的工作流中额外执行了base64ToBinary转换,同时Create Blob操作默认对输入做了二次编码,最终导致存储的文件是双重编码后的无效数据——表现为大小翻倍、打开空白,但原始Base64在线解码能正常显示内容。
修复步骤
调整Sharepoint HTTP请求的二进制响应设置
在HTTP Get请求操作的「设置」选项中,将Response body is binary data设为Yes。这会让Logic Apps直接获取原始二进制数据,而非Base64编码的字符串。移除多余的Compose转换步骤
不需要使用base64ToBinary()或base64ToString()转换内容,直接将HTTP请求的输出(body('HTTP'))作为Create Blob V2的「文件内容」输入。明确设置Blob的内容类型
在Create Blob V2操作中,将Content type字段设置为application/pdf,确保Blob存储的元数据正确,避免下载时浏览器无法识别文件类型。
简化后工作流逻辑
- 发起Sharepoint HTTP Get请求(开启二进制响应模式)
- 直接用请求返回的二进制内容调用Create Blob V2(指定Content-Type为application/pdf)
调整后存储的Blob就是原始PDF的二进制数据,下载后可正常打开。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

