Azure逻辑应用程序-如何从字节数组将文件上传到Azure Blob存储

时间:2020-02-11 20:50:44

标签: azure stream azure-storage-blobs azure-logic-apps azure-blob-storage

我正在尝试创建一个由HttpRequest触发的逻辑应用,该HttpRequest包含JSON请求作为有效载荷。在此JSON的内部,一个字段包含文件:

{
"EntityId": "45643",
"SharedGuid": "00000000-0000-0000-0000-000000000000",
"Document": {
    "DocumentName": "MyFileName.pdf",
    "File": "JVBERi0xLjMKJfv8/f4KMS.....lJUVPRg=="
}}

客户应用程序使用以下C#函数生成此“文件”内容:File.ReadAllBytes(“本地路径在此处”)。

我设法将字节数组上传到Blob存储。但是,一旦将文件上传到Blob存储中,该文件便无效。

我为JSON模式定义中的文件尝试了不同的文件内容,例如:字符串,二进制,应用程序/八位字节流。

This is how my Logic App looks now

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您是否执行了将字节转换为httprequest代码中的Base64String的操作,就像下面的代码一样:

byte[] b = File.ReadAllBytes(@"filepath");
string s = Convert.ToBase64String(b);

根据您提供的文件内容,似乎您已如上所述将其转换为base64string,所以我提供以下解决方案:

为此,您可以在“解析JSON”操作中将响应数据解析为字符串(不需要在架构中使用“二进制”),然后在“创建blob”操作中使用base64ToBinary()方法,请参考下面显示的屏幕截图:

enter image description here “ Blob内容”中的表达式为:

base64ToBinary(body('Parse_JSON')?['Document']?['File'])

希望有帮助〜

如果仍然有任何问题,请随时告诉我。

相关问题