Azure Logi c App - Как загрузить файл в Azure Blob Storage из байтового массива - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь создать приложение Logi c, которое запускается запросом HttpRequest, содержащим в качестве полезной нагрузки запрос JSON. Внутри этого JSON одно поле содержит файл:

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

Это содержимое "файла" создается приложением клиента с помощью следующей функции C#: File.ReadAllBytes ("local path" Вот").

Мне удалось загрузить массив байтов в хранилище BLOB-объектов. Но файл недействителен после загрузки в хранилище BLOB-объектов.

Я пробовал другое содержимое файла для файла в определении схемы JSON как: string, binary, application / octet-stream.

This is how my Logic App looks now

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 12 февраля 2020

Вы выполнили операцию по преобразованию байта в Base64String в своем коде httprequest, как показано в приведенном ниже коде:

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

В соответствии с предоставленным вами содержимым файла кажется, что вы преобразовали его в base64string как указано выше, поэтому я предоставляю решение ниже:

Для этого требования вы можете просто проанализировать данные ответа как строку (не нужно использовать «двоичный» в схеме) в вашем действии «Parse JSON» а затем используйте метод base64ToBinary () в действии «Создать BLOB-объект», см. скриншот, показанный ниже:

enter image description here Выражение «Содержимое BLOB-объекта»:

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

Надеюсь, это поможет ~

Если проблема не устранена, пожалуйста, дайте мне знать.

...