/// <summary> /// 将 Qiniu 标识与 AccessKey、encodedSign 拼接得到管理凭证 /// </summary> /// <returns></returns> public static string GetQiniuToken(string data) { QiniuConfig config = QiniuConfigManager.Current.GetConfig(); string encodedSign = GetSign(data); return("Qiniu " + config.AK + ":" + encodedSign); }
/// <summary> /// 字节流上传 /// </summary> /// <param name="data">上传文件字节流</param> /// <param name="suffix">文件后缀名(.jpg)</param> /// <param name="bucket"></param> /// <returns></returns> public string UploadByByte(byte[] data, string suffix) { QiniuConfig config = QiniuConfigManager.Current.GetConfig(); // 七牛安全 QiNiuSecurity security = new QiNiuSecurity(config.AK, config.SK); string MD5 = DataEncrypt.GetMD5HashByByte(data); string saveKey = MD5; if (!string.IsNullOrWhiteSpace(suffix)) { saveKey += suffix; } // 生成(上传)凭证时需要使用此Mac Mac mac = security.Mac; ZoneID zoneId = ZoneID.CN_South; Qiniu.Common.Config.SetZone(zoneId, false); // 上传策略 var putPolicy = security.CreatePutPolicy(config.Bucket, saveKey); string jstr = putPolicy.ToJsonString(); string token = Auth.CreateUploadToken(mac, jstr); FormUploader fu = new FormUploader(); var result = fu.UploadData(data, saveKey, token); string fileUrl = config.Domain + saveKey; return(fileUrl); }
public ValuesController(IOptions <QiniuConfig> qiniuOption , ILogger <ValuesController> logger ) { this.qiniuOption = qiniuOption.Value; this.logger = logger; }
/// <summary> /// 计算 HMAC-SHA1 签名,并对签名结果做 URL 安全的 Base64 编码 /// </summary> /// <param name="data"></param> /// <returns></returns> public static string GetSign(string data) { QiniuConfig config = QiniuConfigManager.Current.GetConfig(); //HMACSHA1加密 HMACSHA1 hmacsha1 = new HMACSHA1 { Key = Encoding.UTF8.GetBytes(config.SK) }; byte[] dataBuffer = Encoding.UTF8.GetBytes(data); byte[] hashBytes = hmacsha1.ComputeHash(dataBuffer); return(ToBase64StringForUrl(hashBytes)); }
public QiniuTokenManager(OSSConfig config) { _config = config.Qiniu; RefreshTimer(); }
public QiniuFileStorageProvider(QiniuHelper helper, OSSConfig config) { _helper = helper; _config = config.Qiniu; }
/// <summary> /// 初始化config /// </summary> private void initAppConfig() { #region aliyun var aliyun = new AliyunConfig() { App = new AliyunApp() { Id = AppConfig.ALI_CLOUD_KEY, Sercet = AppConfig.ALI_CLOUD_SECRET, Signature = AppConfig.ALI_CLOUD_SIGNATURE }, Apis = new List <Api>() { new Api() { Name = "server-rest", Url = "https://eco.taobao.com/router/rest", Description = "淘宝 RESTful API" } } }; this.Save <AliyunConfig>("aliyun.config", aliyun); #endregion #region wechat var wechat = new WeChatConfig() { App = new AppInfo() { Id = AppConfig.WX_KEY, Sercet = AppConfig.WX_SECRET }, Apis = new List <Api>() { new Api() { Name = "token", Url = "https://api.weixin.qq.com/sns/oauth2/access_token", Description = "授权请求地址" }, new Api() { Name = "user", Url = "https://api.weixin.qq.com/sns/userinfo", Description = "用户信息请求地址" } } }; this.Save <WeChatConfig>("wechat.config", wechat); #endregion #region mongodb var mongo = new MongoDbConfig() { Connection = new MongoConnection() { Value = AppConfig.MONGO_CONNECTION_STRING }, DefaultDb = new MongoDb() { Name = "DefaultDb" }, StatisticsDb = new MongoDb() { Name = "StatisticDb" }, MongoCache = new MongoCacheDb() { Name = $"{AppConfig.PREFIX}Caching", CollectionName = "CacheCollection" } }; this.Save <MongoDbConfig>("mongodb.config", mongo); #endregion #region getui var getui = new GetuiConfig() { Host = "http://sdk.open.api.igexin.com/apiex.htm", AppId = AppConfig.GT_ID, AppKey = AppConfig.GT_KEY, MasterSecret = AppConfig.GT_MASTER_SECRET }; this.Save <GetuiConfig>("getui.config", getui); #endregion #region qiniu var qiniu = new QiniuConfig() { AccessKey = AppConfig.QINIU_ACCOUNT, SecretKey = AppConfig.QINIU_SECRET, Bucket = "bucket" }; this.Save <GetuiConfig>("qiniu.config", getui); #endregion #region site var site = new SiteConfig() { MessageInterval = 10, MaxFileSize = 2, DefaultPic = "/Content/img/avatars/male.png", SHA1Salt = AppConfig.SHA1_SALT, Version = "1.0.141027 内测版", #region Domain Domains = new List <Domain>() { new Domain() { Name = "fileserver", Url = "http://files.test.gu.com/" }, new Domain() { Name = "webserver", Url = "http://www.test.gu.com/" }, new Domain() { Name = "homepage", Url = "http://www.test.gu.com/" }, new Domain() { Name = "webapi", Url = "http://open.gu.com/" } }, #endregion #region Email Email = new EmailConfig() { From = AppConfig.EMAIL_ACCOUNT, UserName = AppConfig.APP, SMTP = "smtp.163.com", Port = 25, NickName = AppConfig.APP, Password = AppConfig.EMAIL_PWD, SSL = false, }, #endregion #region MSMQ MSMQ = $@"FormatName:Direct=TCP:{AppConfig.DB_IP}\private$\", #endregion #region IM IM = new IMConfig() { Host = $"imhost.test.{AppConfig.DOMAIN_SUFFIX}", Port = 5222 } #endregion }; this.Save <SiteConfig>("site.config", site); #endregion }
public QiniuHelper(QiniuTokenManager tokenManager, ILogger <QiniuHelper> logger, OSSConfig config) { _tokenManager = tokenManager; _logger = logger; _config = config.Qiniu; }
public AccountService(IOptions <QiniuConfig> qiniuconfig) { this.qiniuconfig = qiniuconfig.Value; }