【发布时间】:2018-06-26 21:05:42
【问题描述】:
我通过 Web api 上传到 Blob 存储中的公共容器的图像存在一些问题。问题是我需要通过我的 api 上传的图像必须是可浏览的,我的意思是当把公共链接放在浏览器中时,你可以在浏览器中看到图像,但实际行为是当我把链接放在图像下载图像并且在浏览器中没有显示任何内容但是当我通过 azure 门户上传图像时,我可以看到我想要的图像......我的容器是公开的,我不知道还能做什么。 ...我上传图片的代码是这样的:
private readonly CloudBlobContainer blobContainer;
public UploadBlobController()
{
var storageConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];
var storageAccount = CloudStorageAccount.Parse(storageConnectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
blobContainer = blobClient.GetContainerReference("messagesthredimages");
blobContainer.CreateIfNotExists();
blobContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
}
[HttpPost]
[Route("UploadImagetoBlob")]
public async Task<IHttpActionResult> UploadImagetoBlob()//string imagePath
{
try
{
var image = WebImage.GetImageFromRequest();
var imageBytes = image.GetBytes();
var blockBlob = blobContainer.GetBlockBlobReference(image.FileName);
blockBlob.Properties.ContentType = "messagesthreadimages/" + image.ImageFormat;
await blockBlob.UploadFromByteArrayAsync(imageBytes, 0, imageBytes.Length);
return Ok(blockBlob.Uri.ToString());
}
catch (Exception)
{
return BadRequest();
}
}
例如,我希望有人可以帮助我。
【问题讨论】:
-
你有 azure storage 桌面应用吗?
-
不,服务是 azure blob 存储,但我的应用会将图像上传到该存储
-
是的,有一个桌面应用程序可以方便地监控 azure blob 存储。
-
@NevilleNazerane 是的,通过桌面 y 通过门户是可以的。问题是当我的 web api 方法上传图像时
-
该应用程序帮助我调试了几个此类问题。不管怎样,看看我的回答,这应该可以帮助你找出你的问题
标签: blob azure-blob-storage blobstorage