DuGuYang 1 year ago
parent
commit
7d869f5cc3

+ 2 - 0
Areas/Api/Controllers/BaseController.cs

@@ -31,6 +31,8 @@ namespace MySystem.Areas.Api.Controllers
         public static string SourceHost = Library.ConfigurationManager.AppSettings["SourceHost"].ToString();
         public static string SpHost = Library.ConfigurationManager.AppSettings["SpHost"].ToString();
         public static string OssHost = Library.ConfigurationManager.AppSettings["OssHost"].ToString();
+        public string OssKey = Library.ConfigurationManager.AppSettings["OSSKey"].ToString();
+        public string OssSecret = Library.ConfigurationManager.AppSettings["OSSSecret"].ToString();
         public static string Database = Library.ConfigurationManager.AppSettings["Database"].ToString();
         public static string defaultImage = Library.ConfigurationManager.AppSettings["Host"].ToString() + "/skin/app/default/static/images/header.png";
 

+ 38 - 0
Areas/Api/Controllers/PublicMethodController.cs

@@ -9,6 +9,9 @@ using System.Collections;
 using LitJson;
 using System.Globalization;
 using System.Web;
+using System.Security.Cryptography;
+using System.Text;
+using Aliyun.OSS;
 
 namespace MySystem.Areas.Api.Controllers
 {
@@ -44,6 +47,41 @@ namespace MySystem.Areas.Api.Controllers
         }
         #endregion
 
+        
+        #region 前端上传oss返回参数
+        public JsonResult OssInfo()
+        {
+            Dictionary<string, object> Obj = new Dictionary<string, object>();
+            var OssUrl = OssHost;
+            var AccessKeyId = OssKey;
+            var AccessKeySecret = OssSecret;
+
+            var dir = DateTime.Now.ToString("yyyyMMdd") + "/"; //上传目录
+            // 构造OssClient实例。 endpoint 格式:https://oss-cn-beijing.aliyuncs.com
+            var ossClient = new OssClient(OssUrl, AccessKeyId, AccessKeySecret);
+            var config = new PolicyConditions();
+            config.AddConditionItem(PolicyConditions.CondContentLengthRange, 1, 1024L * 1024 * 1024 * 5);// 文件大小范围:单位byte
+            config.AddConditionItem(PolicyConditions.CondSuccessActionStatus, "200");
+            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);
+            return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
+        }
+        #endregion
+
 
 
         #region 编辑器上传图片

+ 5 - 5
appsettings.Development.json

@@ -9,9 +9,9 @@
   "AllowedHosts": "*",
   "Setting": {
     "Host": "http://localhost:6003/",
-    "OssHost": "http://oss.kexiaoshuang.com/",
     "SourceHost": "http://test.mpap2.kexiaoshuang.com/",
     "SpHost": "http://test.mpsp.kexiaoshuang.com/",
+    "OssHost": "https://laikeba.oss-cn-chengdu.aliyuncs.com",
     "Database": "TpAdminServer",
     "StatSqlConnStr": "server=47.109.31.237;port=3306;user=QrCodePlateMainServer;password=ll4DFaALMu9YIooM;database=QrCodePlateStatServer2;charset=utf8;",
     "KxsSqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer;charset=utf8;",
@@ -21,10 +21,10 @@
     "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=5,poolsize=500,preheat=50,asyncPipeline=true",
     "IOSAppVersion": "1.0.0",
     "AndroidAppVersion": "1.0.0",
-    "OSSKey": "iL9dWgBunZRwGbHQ",
-    "OSSSecret": "Q6P2vSNEY2LBNdygO8gUCkBZQpiswZ",
-    "OSSEndpoint": "oss-cn-hangzhou.aliyuncs.com",
-    "OSSBucketName": "yunmuit",
+    "OSSKey": "LTAI5tJsPaNzqCSMCPwb8zfz",
+    "OSSSecret": "efM31Up75fQcgZ32U6xvAciagceQae",
+    "OSSEndpoint": "",
+    "OSSBucketName": "",
     "AppSource": "/skin/app/default/",
     "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
     "JwtIss": "TpAdminServer",