.net 上传七牛云
七牛云快速入门文档:https://developer.qiniu.com/kodo/1233/console-quickstart
在使用之前首先要获取自己的AK和SK,地址>个人信息>密钥管理.
使用方法
通过NeGut下载Qiniu.Shared组件
创建文件管理控制器添加方法
如果向通过Swgger测试接口是否可用,需要在()加入IFormFile files
/// <summary>
/// 简单上传-上传小文件
/// </summary>
[AllowAnonymous]//允许任何访问
[HttpPost]
public IActionResult UploadImgToQiNiu()
{
var formFile = HttpContext.Request.Form.Files;
//这里的ak sk 可以写到配置文件中方便修改
Mac mac = new Mac("你的AK", "你的SK");
// 上传策略,参见
// https://developer.qiniu.com/kodo/manual/put-policy
Qiniu.IO.Model.PutPolicy putPolicy = new Qiniu.IO.Model.PutPolicy();
// 如果需要设置为"覆盖"上传(如果云端已有同名文件则覆盖),请使用 SCOPE = "BUCKET:KEY"
// putPolicy.Scope = bucket + ":" + saveKey;
//上传储存的空间名称
putPolicy.Scope = "上传空间名称";
// 上传策略有效期(对应于生成的凭证的有效期)
putPolicy.SetExpires(3600);
// 上传到云端多少天后自动删除该文件,如果不设置(即保持默认默认)则不删除
// putPolicy.DeleteAfterDays = 1;
string jstr = putPolicy.ToJsonString();
//获取上传凭证
var uploadToken = Auth.CreateUploadToken(mac, jstr);
//false 使用https 自动识别存储空间
Qiniu.Common.Config.AutoZone("你的AK", "上传空间名称", false);
Qiniu.IO.UploadManager um = new Qiniu.IO.UploadManager();
foreach (IFormFile file in formFile)//获取多个文件列表集合
{
if (file.Length > 0)
{
Stream stream = file.OpenReadStream();
//var fileName = ContentDispositionHeaderValue
//.Parse(file.ContentDisposition)
//.FileName
//.Trim('"');
string fileName = file.FileName.Substring(file.FileName.LastIndexOf('.')); //文件扩展名
//DateTime.Now.ToString("yyyyMMddHHmmssffffff")
var saveKey = "Pic/" + Guid.NewGuid().ToString("N") + fileName;//重命名文件加上时间戳 其中上传地址也可以配置s
HttpResult result = um.UploadStream(stream, saveKey, uploadToken);
if (result.Code == 200)
{
return Ok(result.Text);
}
else
{
throw new Exception(result.RefText);//上传失败错误信息
}
}
}
return null;
}
标签:putPolicy,七牛云,Qiniu,result,file,上传
From: https://www.cnblogs.com/ak-yn11/p/17128030.html