【发布时间】:2019-08-05 06:40:39
【问题描述】:
我正在尝试将图像保存在 azure blob 存储中。我通过代码设置了内容类型,如下但它正在准备但没有上传。我该怎么办?
文件上传代码:
[HttpPost("ListFiles")]
public async Task<List<string>> InsertFile(List<IFormFile> asset)
{
try
{
var urlList = new List<string>();
foreach (var op in asset)
{
if (CloudStorageAccount.TryParse(_config.Value.StorageConnection, out CloudStorageAccount storageAccount))
{
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(_config.Value.Container);
var postedFileExtension = Path.GetExtension(op.FileName);
var img = $@"{Guid.NewGuid()}" + postedFileExtension;
CloudBlockBlob blockBlob = container.GetBlockBlobReference(img);
CloudBlockBlob cloudBlockBlob = container.GetBlockBlobReference(img);
cloudBlockBlob.Properties.ContentType = op.ContentType;
await blockBlob.UploadFromStreamAsync(op.OpenReadStream());
var blob = container.GetBlockBlobReference(img);
urlList.Add(blob.Uri.AbsoluteUri);
}
}
return urlList;
}
catch (Exception e)
{
throw e;
}
}
【问题讨论】:
-
您正在更新记录的第二个引用的属性,但不保存更改。重用
blockBlob并将其设置为ContentType的值或保存cloudBlockBlob。