将Word文档上载到Azure存储时出错

时间:2020-07-27 18:07:25

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

我正在尝试使用以下代码将word文档与blob一起上传到蔚蓝云存储中

 var fileName = $"{designInput.ProjectNumber}-{projectPhaseData.Name}-BOD.docx";
 var builder = new BasisOfDesignBuilder(UpdatedDesignProject);
 var director = new BasisOfDesignDirector(builder);
 director.BuildBasisOfDesign();
 var document = builder.GetWordDocumentBytes(); // this will give byte array 

 var azureStorageAccountName = Startup.Configuration["AzureStorage:AccountName"]; // 'accountname like storageprod01'
 var azureStorageConnectionString = Startup.Configuration["AzureStorage:ConnectionString"]; // url like DefaultEndpointsProtocol=https;AccountName=storageprod01;AccountKey=abcbbc;EndpointSuffix=core.windows.net

 BlobContainerClient azureStorageContainer = new BlobContainerClient(azureStorageConnectionString, azureStorageAccountName);
 BlobClient blob = azureStorageContainer.GetBlobClient(fileName);
 using var memoryStream = new MemoryStream(document, false);
 blob.Upload(memoryStream);

在此行blob.Upload(memoryStream);

遇到错误

错误是

指定的容器不存在

谁能知道为什么我会收到此错误,或者我缺少与Azure存储帐户相关的内容?

预先感谢

1 个答案:

答案 0 :(得分:1)

适合于将accountName的名称作为容器的名称传递给构造函数。(https://docs.microsoft.com/en-us/dotnet/api/azure.storage.blobs.blobcontainerclient.-ctor?view=azure-dotnet#Azure_Storage_Blobs_BlobContainerClient__ctor_System_Uri_Azure_Storage_StorageSharedKeyCredential_Azure_Storage_Blobs_BlobClientOptions_enter image description here

第二,在创建Blob之前,必须先创建容器。

 BlobContainerClient azureStorageContainer = new BlobContainerClient(azureStorageConnectionString, containerName);
 azureStorageContainer.CreateIfNotExists();
 BlobClient blob = azureStorageContainer.GetBlobClient(fileName);
 using var memoryStream = new MemoryStream(document, false);
 blob.Upload(memoryStream);