Reference Azure函数复制由上载触发的文件

Reference Azure函数复制由上载触发的文件,reference,azure-functions,azure-blob-storage,Reference,Azure Functions,Azure Blob Storage,我试图扩展基础教程,它允许您在文件上载到blob存储后记录信息。教程中的代码有效,并从这里提取: 我现在尝试添加一个输出,将该文件复制到另一个容器中。我正在使用以下输出示例中的代码: 我的代码只是原始示例的一个小插件 run.csx: using System.IO; using System.Collections.Generic; using Microsoft.Azure.WebJobs; public static void Run([BlobTrigger("sampl

我试图扩展基础教程,它允许您在文件上载到blob存储后记录信息。教程中的代码有效,并从这里提取:

我现在尝试添加一个输出,将该文件复制到另一个容器中。我正在使用以下输出示例中的代码:

我的代码只是原始示例的一个小插件

run.csx:

using System.IO;
using System.Collections.Generic;
using Microsoft.Azure.WebJobs;

public static void Run([BlobTrigger("samples-workitems/{name}")] Stream myBlob, [Blob("copytwotkelly/{name}", FileAccess.Write)] Stream duplicateUpload, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");

    myBlob.CopyTo(duplicateUpload);
}
function.json:

{
  "bindings": [
    {
      "name": "myBlob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "samples-workitems/{name}",
      "connection": "AzureWebJobsStorage"
    },
    {
      "name": "duplicateUpload",
      "path": "copytwotkelly/{name}",
      "connection": "AzureWebJobsStorage",
      "direction": "out",
      "type": "blob"
    }
  ]
}
当函数触发时,我会收到错误消息:

2020-11-25T06:29:57.518[错误]run.csx(5,25):错误CS0246:找不到类型或命名空间名称“BlobTriggerAttribute”(是否缺少using指令或程序集引用?) 2020-11-25T06:29:57.580[错误]run.csx(5,25):错误CS0246:找不到类型或命名空间名称“BlobTrigger”(是否缺少using指令或程序集引用?) 2020-11-25T06:29:57.672[错误]run.csx(5,82):错误CS0246:找不到类型或命名空间名称“BlobatAttribute”(是否缺少using指令或程序集引用?) 2020-11-25T06:29:57.729[错误]run.csx(5,82):错误CS0246:找不到类型或命名空间名称“Blob”(是否缺少using指令或程序集引用?)


但据我所知,我已经正确地遵循了教程中的配置说明。它实际上没有在示例中显示.json文件,所以我不确定我做错了什么。我错过了什么?在使用Microsoft.Azure.WebJobs时,这些类不是它所要求的吗;我提到的?提前感谢您的帮助。

下面的代码对我来说很好:

function.json

{
  "bindings": [
    {
      "name": "myBlob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "test1/{name}",
      "connection": "AzureWebJobsStorage"
    },
    {
      "name": "myOutputBlob",
      "type": "blob",
      "path": "test2/{name}",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ]
}
public static void Run(Stream myBlob,Stream myOutputBlob, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    myBlob.CopyTo(myOutputBlob);
}
run.csx

{
  "bindings": [
    {
      "name": "myBlob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "test1/{name}",
      "connection": "AzureWebJobsStorage"
    },
    {
      "name": "myOutputBlob",
      "type": "blob",
      "path": "test2/{name}",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ]
}
public static void Run(Stream myBlob,Stream myOutputBlob, string name, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    myBlob.CopyTo(myOutputBlob);
}
这是官方文件:


您似乎需要使用blob存储包。您的意思是我需要包含另一个命名空间吗?如果是,哪一个?这些示例没有使用任何其他示例。而且您是基于csx的,对吗?您的格式错误。run.csx的格式错误吗?据我所知,它与我发布的第二个链接的格式相同。你能告诉我它到底出了什么问题吗?你可以检查一下:你可以试试我贴的答案。