Ver código fonte

Merge branch 'DuGuYang'

lcl 8 meses atrás
pai
commit
b2280a4066

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

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

+ 48 - 7
Areas/Api/Controllers/PublicMethodController.cs

@@ -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
+
     }
 }

+ 1 - 1
Areas/Api/Controllers/v1/MainServer/UsersController.cs

@@ -43,7 +43,7 @@ namespace MySystem.Areas.Api.Controllers.v1
             KxsMainModels.Users query = kxsdb.Users.FirstOrDefault(m => m.Id == Id) ?? new KxsMainModels.Users();
             string IdString = Id.ToString();
             Obj.Add("RealName", query.RealName); //真实姓名
-            Obj.Add("HeadPhoto", DefaultPic(query.HeadPhoto)); //头像
+            Obj.Add("HeadPhoto", query.HeadPhoto); //头像
             // Obj.Add("UserLevel", query.UserLevel); //创客实际等级
             DateTime now = DateTime.Now;
             UserRankWhite rank = maindb.UserRankWhite.FirstOrDefault(m => m.Id == Id && m.UpdateDate > now) ?? new UserRankWhite();

+ 5 - 5
appsettings.Development.json

@@ -13,7 +13,7 @@
     "Host2": "http://test.mpap2.kexiaoshuang.com/",
     "SourceHost": "http://test.mpap.kexiaoshuang.com/",
     "SpHost": "http://test.mpsp.kexiaoshuang.com/",
-    "OssHost": "http://oss.qrcodeplate.com",
+    "OssHost": "https://laikeba.oss-cn-chengdu.aliyuncs.com",
     "QrCodeHost": "http://test.mpap.kexiaoshuang.com/",
     "Database": "ApServer",
     "KxsSqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=FrW8ZfxlcaVdm1r0;database=KxsMainServer;charset=utf8;",
@@ -25,10 +25,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": "",
-    "OSSSecret": "",
-    "OSSEndpoint": "",
-    "OSSBucketName": "",
+    "OSSKey": "LTAI5tJsPaNzqCSMCPwb8zfz",
+    "OSSSecret": "efM31Up75fQcgZ32U6xvAciagceQae",
+    "OSSEndpoint": "oss-cn-chengdu.aliyuncs.com",
+    "OSSBucketName": "laikeba",
     "AppSource": "/skin/app/default/",
     "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
     "JwtIss": "ApServer",