【问题标题】:upload azure blob using UploadFromStreamAsync Method使用 UploadFromStreamAsync 方法上传 azure blob
【发布时间】:2018-12-29 13:44:59
【问题描述】:

问题

我正在尝试生成 Pdf 并创建 MemoryStream 对象并尝试将该流上传到 azure Blob Storage。到目前为止,我已经尝试过下面的代码,但是 blob 没有上传到 azure,而且我使用 azure sdk 的流方法上传的那个 blob 的名称是什么

代码

var memoryStream = new MemoryStream(byteArray, 0, byteArray.Length);
var cred = new StorageCredentials("foo", "key");
var account = new CloudStorageAccount(cred, true);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("container");
CloudBlockBlob sourceBlob = container.GetBlockBlobReference("foo/bar");
var attachment =  sourceBlob.UploadFromStreamAsync(memoryStream);

【问题讨论】:

  • 首先突出的是在调用UploadFromStreamAsync时缺少await

标签: c# azure asp.net-core azure-blob-storage


【解决方案1】:

正如@Kirk 所说,使用await sourceBlob.UploadFromStreamAsync(memoryStream); 而不是var attachment = sourceBlob.UploadFromStreamAsync(memoryStream); 否则您的代码将在上传完成之前退出。

注意你的方法应该改成public async Task methodname(),你会看到VS显示的相关提示。

一些参考资料

请参阅container.GetBlockBlobReference("blobname");,用于获取 blob 引用的字符串是上传的 blob 的名称。

【讨论】:

    猜你喜欢
    • 2020-01-14
    • 2019-08-10
    • 2016-12-23
    • 2013-09-21
    • 2019-12-15
    • 2020-03-12
    • 2017-04-06
    • 2014-07-13
    • 1970-01-01
    相关资源
    最近更新 更多