2017-05-17 3 views
0

Je dois transmettre le nom du fichier et le contenu du fichier à la fonction Azure lorsqu'un nouveau fichier est ajouté ou modifié dans le dossier SFTP. Je suis en mesure de les transmettre, mais le contenu de fichiers se passé comme JSON de type complexe comme suit:Utilisation du contenu du fichier SFTP dans les applications Azure Logic

{ 
    "fileContent": { 
    "$content-type": "application/octet-stream", 
    "$content": "QWxvZnQgQidoYW0gU29obyBTcSAgICAg==" 
    }, 
    "fileName": "testFile" 
} 

J'ai juste besoin de passer $ content à la fonction Azure. Mon code actuel est la suivante dans l'application logique

"body": { 
          "fileContent": "@triggerBody()", 
          "fileName": "@triggerOutputs()['headers']['x-ms-file-name']" 
         }, 

Comment pourrais-je passer seule forme de contenu ContenuFichier à la fonction Azure?

Répondre

1

Comme vous pouvez le voir, vous obtenez une propriété $ content, il vous suffit donc d'accéder à cette propriété, et comme codé en Base64, vous devez le décoder. Essayez cette

"body": { 
      "fileContent": "@base64ToString(triggerBody()['$content'])", 
      "fileName": "@triggerOutputs()['headers']['x-ms-file-name']" 
}, 

HTH

2

Vous devriez être en mesure de passer juste le contenu en l'état. Les applications logiques décodent les données et les transmettent en binaire à la fonction azure (en supposant que la fonction accepte le contenu binaire). Vous pouvez passer le nom du fichier en en-tête.

Si vous souhaitez joindre le contenu en tant que propriété sur un objet, vous pouvez utiliser

"body": { 
    "fileContent": "@base64(triggerBody())", 
    "fileName": "@triggerOutputs()['headers']['x-ms-file-name']" 
} 
+0

testera et revenir. Je vous remercie :) –