博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net Core Web Api 上传女朋友的照片到微软云Azure Storage
阅读量:4663 次
发布时间:2019-06-09

本文共 1779 字,大约阅读时间需要 5 分钟。

前言

600371-20181102160505809-1792876538.png

实现一个Web Api,把女朋友照片保存到Azure云的storage里。

Image Upload Api

在对应的Api Controller里,加上attribute:

[Consumes("application/json", "multipart/form-data")]

然后定义一个model,用来接收上传的图片:

/// /// Image model/// public class UploadImage{    ///     /// imageFile    ///     public IFormFile imageFile { get; set; }}

实现对应的Api,处理客户端上传图片的请求:

/// /// UploadImage/// /// /// 
[HttpPost][Route("imageupload")]public async Task
UploadImage([FromForm]UploadImage imageData){ var stream = imageData.imageFile.OpenReadStream(); var name = imageData.imageFile.FileName; var uploadResult = await UploadFileAsBlob(stream, name); return Ok(name);}

创建Storage

在Azure云服务创建相应的Storage,并在对应的Storage下建一个Blob,最后在Blob里创建一个Container,在storage的Access keys里,保存connection string,这个是服务端连接storage的credential key。

因为现在的云服务都是图形化操作,这里不再详述,在Portal都有对应的操作。

600371-20181102160216404-664449492.png

保存图片在Blob中

引用两个namespace:

using Microsoft.WindowsAzure.Storage;using Microsoft.WindowsAzure.Storage.Blob;

连接Azure storage:

/// /// Save image to Azure blob/// /// /// /// 
public async Task
UploadFileAsBlob(Stream stream, string filename){ CloudStorageAccount storageAccount = CloudStorageAccount.Parse("StorageAccountConnectionString"); // Create the blob client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Retrieve a reference to a container. CloudBlobContainer container = blobClient.GetContainerReference("BlobContainerName"); CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename); await blockBlob.UploadFromStreamAsync(stream); stream.Dispose(); return blockBlob?.Uri.ToString(); }

Postman上传效果

选择Body,在body里选择form-data,然后把key设置成model里的变量名称:

600371-20181102155243414-1042338632.png

最后保存在Azure的storage中,

600371-20181102155550719-186299894.png

在浏览器地址栏输入storage 的地址+ 照片名称,把女朋友的照片下载到本地。

转载于:https://www.cnblogs.com/shy-huang/p/9896726.html

你可能感兴趣的文章