|
@@ -1,18 +1,15 @@
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
-using System.Linq;
|
|
|
-using System.Threading.Tasks;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
using Microsoft.Extensions.Options;
|
|
|
-using System.DrawingCore.Imaging;
|
|
|
-using System.IO;
|
|
|
using Library;
|
|
|
-using System.Collections;
|
|
|
-using LitJson;
|
|
|
-using System.Globalization;
|
|
|
using System.Web;
|
|
|
+using System.Security.Cryptography;
|
|
|
+using System.Text;
|
|
|
+using Aliyun.OSS;
|
|
|
+using LitJson;
|
|
|
|
|
|
// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
|
|
|
|
@@ -49,5 +46,49 @@ namespace MySystem.Areas.Api.Controllers
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
+
|
|
|
+ #region 前端上传oss返回参数
|
|
|
+ public JsonResult OssInfo(string value)
|
|
|
+ {
|
|
|
+ value = DesDecrypt(value);
|
|
|
+ JsonData data = JsonMapper.ToObject(value);
|
|
|
+ string dir = data["dir"].ToString(); //文件上传路径
|
|
|
+ if (string.IsNullOrEmpty(data["dir"].ToString()))
|
|
|
+ {
|
|
|
+ return Json(new AppResultJson() { Status = "1", Info = "文件上传路径不能为空" });
|
|
|
+ }
|
|
|
+ Dictionary<string, object> Obj = new Dictionary<string, object>();
|
|
|
+ var OssUrl = OssHost;
|
|
|
+ var AccessKeyId = OssKey;
|
|
|
+ var AccessKeySecret = OssSecret;
|
|
|
+ var endpoint = "https://" + OssEndpoint;
|
|
|
+
|
|
|
+ // 构造OssClient实例。 endpoint 格式:https://oss-cn-beijing.aliyuncs.com
|
|
|
+ var ossClient = new OssClient(endpoint, AccessKeyId, AccessKeySecret);
|
|
|
+ var config = new PolicyConditions();
|
|
|
+ config.AddConditionItem(PolicyConditions.CondContentLengthRange, 1, 1024L * 1024 * 1024 * 5);// 文件大小范围:单位byte
|
|
|
+ config.AddConditionItem(MatchMode.StartWith, PolicyConditions.CondKey, dir);
|
|
|
+ var expire = DateTimeOffset.Now.AddMinutes(30);// 过期时间
|
|
|
+
|
|
|
+ // 生成 Policy,并进行 Base64 编码
|
|
|
+ var policy = ossClient.GeneratePostPolicy(expire.LocalDateTime, config);
|
|
|
+ var policyBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(policy));
|
|
|
+
|
|
|
+ // 计算签名
|
|
|
+ var hmac = new HMACSHA1(Encoding.UTF8.GetBytes(AccessKeySecret));
|
|
|
+ var bytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(policyBase64));
|
|
|
+ var Signature = Convert.ToBase64String(bytes);
|
|
|
+
|
|
|
+ Obj.Add("OssUrl", OssUrl);
|
|
|
+ Obj.Add("AccessKeyId", AccessKeyId);
|
|
|
+ // Obj.Add("AccessKeySecret", AccessKeySecret);
|
|
|
+ Obj.Add("Policy", policyBase64);
|
|
|
+ Obj.Add("Expiration", expire);
|
|
|
+ Obj.Add("Signature", Signature);
|
|
|
+ Obj.Add("dir", dir);
|
|
|
+ return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
}
|
|
|
}
|