在天蓝色的存储容器上应用方法GetBlockBlobReference()
时出现以下错误。我可以使用Microsoft.WindowsAzure.Storage
NuGet来获取此容器,当我导航到此Nuget时也可以看到所有方法,但是在编译时找不到某些方法。
System.Private.CoreLib:执行函数时发生异常: 富裕功能。 GoogleAnalytics:找不到方法:'无效 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.UploadFromStream(System.IO.Stream, Microsoft.WindowsAzure.Storage.AccessCondition, Microsoft.WindowsAzure.Storage.Blob.BlobRequestOptions, Microsoft.WindowsAzure.Storage.OperationContext)'
在Internet上,每个人都说“降级”了Azure Storage Nuget版本,但无法正常工作。我尝试使用版本5、6、7甚至9。我使用.NET Framework 4.7作为类库,由功能项目在版本2上调用。
一些代码(同样我可以检索容器):
public void UploadFile( CloudBlobContainer container )
{
var filePathOnServer = Path.Combine("C:/temp/test/c.csv");
using (var fileStream = File.OpenRead(filePathOnServer))
{
var filename = "c.csv"; // Trim fully pathed filename to just the filename
var blockBlob = container.GetBlockBlobReference(filename);
blockBlob.UploadFromStream(fileStream);
}
}
我们在其他项目(.NET的其他版本)上完全相同地使用Azure Blob存储,并且工作正常!
谢谢
答案 0 :(得分:1)
请安装最新的Blob存储nuget软件包:Microsoft.Azure.Storage.Blob, Version 10.0.3.
将其安装在类库和azure函数上。
我使用.net 4.7类库和azure函数v2进行了测试,它可以正常工作。
原因是,.net核心的WindowsAzure.Storage
NuGet版本9.3或更低版本仅支持异步方法,因此函数v2(即.net核心)没有定义UploadFromStream()
。但是在Microsoft.Azure.Storage.Blob, Version 10.0.3
中,它确实为.net核心项目支持异步和非异步方法。