.net6 webapi 对接七牛云上传图片

235 阅读1分钟

安装

官方文档:developer.qiniu.com/kodo/1237/c…

Nuget 搜索安装 Qiniu

Snipaste_2022-07-21_22-51-06.png

首先控制器写一个post接口接受上传的文件

[HttpPost]
public void UploadImage(IFormFile imgFile)
{
   userServices.UploadImage(imgFile);
}

密钥, 可以在七牛云控制台找到, ak 和sk;

Bucket 储存空间名

bucket接口文档:developer.qiniu.com/kodo/3941/t…

string Bucket = "image"; //七牛云储存空间的名字
string AccessKey = "VuDqYiw8qQobmajri......."; 
string SecretKey = "0zr9oI_1cqJrvKlC0.......";

AK SK 密钥

控制台:portal.qiniu.com/home

Snipaste_2022-07-21_22-43-52.png

Snipaste_2022-07-21_22-45-40.png

上传方法

Zone 上传空间时选择的机房

机房地区
华 东ZONE_CN_East
华 北ZONE_CN_North
华 南ZONE_CN_South
北 美ZONE_US_North
东南亚ZONE_AS_Singapore
        //返回值根据业务定
        public void UploadImage(IFormFile file)
        {
            //参数可配置在appsetting.json中
            string Bucket = "..."; //文件储存空间
            string AccessKey = "VuDqYiw8qQobmajrimB1。。。";
            string SecretKey = "0zr9oI_1cqJrvKlC02-C。。。";

            // 获取到上传文件名
            string key = file.FileName;

            //转Stream流
            Stream stream = file.OpenReadStream();

            Mac mac = new Mac(AccessKey, SecretKey);
            //获取到用户凭证
            PutPolicy putPolicy = new PutPolicy();
            putPolicy.Scope = Bucket;
            string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());

            Config config = new Config();
            // 空间对应的机房华南华北。。。
            config.Zone = Zone.ZONE_CN_South;
            // 是否使用https域名
            config.UseHttps = true;
            // 上传是否使用cdn加速
            config.UseCdnDomains = true;
            config.ChunkSize = ChunkUnit.U512K;
            // 上传
            FormUploader target = new FormUploader(config);
            HttpResult result = target.UploadStream(stream, key, token, null);
            
            //打印返回值
            Console.WriteLine("form upload result: " + result.ToString());

        }

访问地址一般都是域名加目录名加文件名。