【问题标题】:Compilation error when trying to reference a CloudBlockBlob in blobstorage triggered function尝试在 blobstorage 触发函数中引用 CloudBlockBlob 时出现编译错误
【发布时间】:2018-09-25 07:39:34
【问题描述】:

这是我的功能代码。

#r "Microsoft.WindowsAzure.Storage.Blob"

public static async Task Run(CloudBlockBlob uploadedVideo, string name, CloudBlockBlob processedVideo, ILogger log)
{
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {uploadedVideo.Length} Bytes");
    var fileEntry = new 
    {
        fileName = $"uploaded-videos/{name}",
        fileType = "video",
        correlationId = Guid.NewGuid()
    };
    await processedVideo.StartCopyAsync(uploadedVideo);  
    await uploadedVideo.DeleteIfExistsAsync();
}

这是我的function.json

{
  "bindings": [
    {
      "name": "uploadedVideo",
      "type": "blobTrigger",
      "direction": "in",
      "path": "uploaded-videos/{name}",
      "connection": "AzureWebJobsStorage"
    },
    {
      "type": "blob",
      "name": "processedVideo",
      "path": "processed-videos/{name}-{rand-guid}",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ]
}

这是我运行这个函数时它不断抛出的错误。

2018-09-25T07:34:10.813 [错误] 函数编译错误 2018-09-25T07:34:10.982 [错误] BlobTriggerCSharp.csx(2,1):错误 CS0006:找不到元数据文件“Microsoft.WindowsAzure.Storage.Blob” 2018-09-25T07:34:11.040 [错误] BlobTriggerCSharp.csx(4,30):错误 CS0246:找不到类型或命名空间名称“CloudBlockBlob”(您是否缺少 using 指令或程序集引用?) 2018-09-25T07:34:11.128 [错误] BlobTriggerCSharp.csx(4,73):错误 CS0246:找不到类型或命名空间名称“CloudBlockBlob”(您是否缺少 using 指令或程序集引用?)

【问题讨论】:

    标签: c# azure azure-functions azure-blob-storage


    【解决方案1】:

    没有Microsoft.WindowsAzure.Storage.Blob 程序集,它是包含在Microsoft.WindowsAzure.Storage 中的命名空间。程序集和命名空间应如下使用。

    #r "Microsoft.WindowsAzure.Storage"
    
    using Microsoft.WindowsAzure.Storage.Blob;
    

    CloudBlockBlob不能直接获取Length属性,我们必须先获取blob属性。

    await uploadedVideo.FetchAttributesAsync();
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {uploadedVideo.Properties.Length} Bytes");
    

    【讨论】:

    • 我有同样的问题,但你的解决方案没有解决它。错误为2018-11-22T12:18:13.662 [Error] run.csx(118,19): error CS1061: 'CloudBlobContainer' does not contain a definition for 'Exists' and no extension method 'Exists' accepting a first argument of type 'CloudBlobContainer' could be found (are you missing a using directive or an assembly reference?) 我也检查了退出
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    相关资源
    最近更新 更多