c# - 尝试在 blobstorage 触发函数中引用 CloudBlockBlob 时出现编译错误

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

这是我的函数代码。

#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 [Error] Function compilation error 2018-09-25T07:34:10.982 [Error] BlobTriggerCSharp.csx(2,1): error CS0006: Metadata file 'Microsoft.WindowsAzure.Storage.Blob' could not be found 2018-09-25T07:34:11.040 [Error] BlobTriggerCSharp.csx(4,30): error CS0246: The type or namespace name 'CloudBlockBlob' could not be found (are you missing a using directive or an assembly reference?) 2018-09-25T07:34:11.128 [Error] BlobTriggerCSharp.csx(4,73): error CS0246: The type or namespace name 'CloudBlockBlob' could not be found (are you missing a using directive or an assembly reference?)

最佳答案

没有 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");

关于c# - 尝试在 blobstorage 触发函数中引用 CloudBlockBlob 时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52492992/

相关文章:

c# - await 关键字阻塞主线程

c# - 如何获取 Visual Studio 2017 的当前主题

mysql - MySQL 的 SQL 迁移助手

python-3.x - 使用文件向 Common Data Service 发出 PATCH 方法请求

azure - 触发计时器从powershell触发Azure功能

c# - 如何从 C# 代码运行 R 脚本?

c# - 在 C# 中将字符串列表添加到 OracleCommand.Parameters

asp.net - Application Insights - 没有依赖持续时间的数据

azure - Angular 6 VSTS azure Build ng 构建配置=生产不起作用

azure - 如何在 Azure 函数中手动将调用标记为失败?