尝试使用azure函数上传ftp文件

时间:2017-11-06 15:08:51

标签: azure ftp azure-functions

我正在尝试使用外部文件协议和FTP api连接发送文件。配置和代码是直接的,应用程序运行成功,但没有数据发送到FTP,我看不到任何跟踪,该功能甚至试图使用ftp发送数据....有什么问题?而且更重要;我在哪里可以监控外部文件api的进度?

我的代码如下(注意:我已经尝试过Stream和string作为输入和输出)

run.csx

public static void Run(Stream myBlobInput, string name, out Stream 
 myFTPOutput, TraceWriter log)
    {
        myFTPOutput = myBlobInput;
        //log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Content:{myBlob}");
        log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size:{myBlobInput.Length} \n Content:{myBlobInput.ToString()}");

    }

function.json

"bindings": [
    {
      "name": "myBlobInput",
      "type": "blobTrigger",
      "direction": "in",
      "path": "input/{name}",
      "connection": "blob_STORAGE"
    },
    {
      "name": "myFTPOutput",
      "type": "apiHubFile",
      "direction": "out",
      "path": "/output/{name}",
      "connection": "ftp_FTP"

    }
  ],
  "disabled": false
}

2 个答案:

答案 0 :(得分:0)

我可以让它运作: 如果我们想在输出FTP服务器和相同的文件名中有相同的文件内容,那么这里是代码和函数.json

public static void Run(string myBlob, string name, TraceWriter log , out string outputFile )
{
log.Info($"2..C# Blob trigger function Processed blob\n Name:{name} \n Size:{myBlob.Length} \n Content:{myBlob.ToString()}");
outputFile=myBlob;
}

这里还有function.json



    {
      "bindings": [
        {
          "name": "myBlob",
          "type": "blobTrigger",
          "direction": "in",
          "path": "myblobcontainer/{name}",
          "connection": "AzureWebJobsDashboard"
        },
        {
          "type": "apiHubFile",
          "name": "outputFile",
          "path": "LogFiles/{name}",
          "connection": "ftp_FTP",
          "direction": "out"
        }
      ],
      "disabled": false
    }


输入绑定应该具有有效的容器名称,如blob帐户所示 - : blob container structure as path

同样在FTP的输出绑定中,路径应该是Root的FTP中的任何文件夹,您在FTP登录UI /控制台中看到的文件名,然后是文件名,在这种情况下{name},它允许我们保持相同的输出文件名作为输入blob名称。

答案 1 :(得分:0)

好的,所以我将ftp Connection更改为其他服务器,它就像魅力一样。这意味着Azure函数中有一些防火墙拒绝触发。可悲的是,没有错误消息触发我可以发现。感谢所有支持