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

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

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

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

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

我设法将字节数组上传到 blob 存储。但文件一旦上传到 Blob 存储中就无效。

我在 JSON 架构定义中尝试了不同的文件内容:字符串、二进制、应用程序/八位字节流。

This is how my Logic App looks now

任何帮助将不胜感激。

最佳答案

你的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'])

希望对你有帮助~

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

关于Azure 逻辑应用程序 - 如何将文件从字节数组上传到 Azure Blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60177164/

相关文章:

azure - 基于 Blob 存储的 Azure 函数触发器无法与存储资源管理器/模拟器一起使用

c# - 注入(inject)到 azure 函数中的自定义类记录器不会写入控制台

c# - 如何将Unity移动应用程序连接到Azure SQL数据库?

c++ - getline 如何与 cin 一起工作?

c++ - 关于 std::basic_ostream::write

azure - 使用pyspark从Azure blob存储读取(txt,csv)文件

azure - 在线查看 Azure Blob 元数据

azure - 在 Azure Dev Ops 代理上安装 Az 2.8.0 Powershell 模块

.net - 如何从内存中的图像获取流?

azure - 在 Azure 上暂存或登陆