阿里云日志api创建logStore

public  async Task< bool> CreateLogStore( string project,  string logStore)
        {
             using ( var client =  new HttpClient())
            {
                 var time = DateTime.Now;
                 string body = Newtonsoft.Json.JsonConvert.SerializeObject( new LogBody() { logstoreName = logStore, ttl =  1, shardCount =  2 });
                 string date = FormatRfc822Date(time);

                 string contentMD5 = MD5Encrypt(body);
                 string signString = Sign( " POST\n " + contentMD5 +  " \napplication/json\n " + date +  " \nx-log-apiversion:0.6.0\nx-log-signaturemethod:hmac-sha1\n/logstores "this.accessKeySecret);

                HttpContent content =  new StringContent(body);
                 string sign =  string.Format( " {0}:{1} ", accessKeyId, signString);

                client.DefaultRequestHeaders.Add( " x-log-apiversion "" 0.6.0 ");
                client.DefaultRequestHeaders.Authorization =  new AuthenticationHeaderValue( " LOG ", sign);
                client.DefaultRequestHeaders.Add( " host ", project +  " . " + endpoint);
                client.DefaultRequestHeaders.Add( " Date ", date);
                client.DefaultRequestHeaders.Add( " x-log-signaturemethod "" hmac-sha1 ");
                client.DefaultRequestHeaders.Add( " ContentMD5 ", contentMD5);
                content.Headers.ContentType =  new MediaTypeHeaderValue( " application/json ");

                 try
                {

                     var res =  await client.PostAsync( string.Format( " http://{0}.{1}/logstores ", project, endpoint), content).ConfigureAwait( false);
                     return res !=  null && res.StatusCode == System.Net.HttpStatusCode.OK;
                }
                 catch (Exception ex)
                {
                     return  false;
                }
            }
        }
         private  const  string _rfc822DateFormat =  " ddd, dd MMM yyyy HH:mm:ss \\G\\M\\T ";
         public  static  string FormatRfc822Date(DateTime dt)
        {
             return dt.ToUniversalTime().ToString(_rfc822DateFormat, CultureInfo.InvariantCulture);
        }

         string MD5Encrypt( string strText)
        {
             using ( var md5 = MD5.Create())
            {
                 var result = md5.ComputeHash(Encoding.UTF8.GetBytes(strText));
                 return BitConverter.ToString(result).Replace( " - """).ToUpper();
            }
        }

         byte[] MD5EncryptByte( string strText)
        {
             using ( var md5 = MD5.Create())
            {
                 return md5.ComputeHash(Encoding.UTF8.GetBytes(strText));
            }
        }

         string Sign( string signatureString,  string secretKey,  bool isRaw =  true)
        {
             var enc = Encoding.UTF8;
            HMACSHA1 hmac =  new HMACSHA1(enc.GetBytes(secretKey));
            hmac.Initialize();

             byte[] buffer = enc.GetBytes(signatureString);
             if (isRaw)
            {
                 byte[] ret = hmac.ComputeHash(buffer);
                 return Convert.ToBase64String(ret);
            }
             else
            {
                 string res = BitConverter.ToString(hmac.ComputeHash(buffer)).Replace( " - """).ToLower();
                 return Convert.ToBase64String(Encoding.UTF8.GetBytes(res));
            }
        }

         ///   <summary>
        
///  外部DLL导入
        
///   </summary>
         void ExportDll()
        {
             string path = AppDomain.CurrentDomain.BaseDirectory;
             try
            {
                System.IO.DirectoryInfo DirInfo =  new DirectoryInfo(path);
                DirInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory;
            }
             catch { }

             #region zlib32.dll

             string dllfile1 = Path.Combine(path,  " zlib32.dll ");
             if (!File.Exists(dllfile1))
            {
                File.WriteAllBytes(dllfile1, Resource.zlib32);
            }

             #endregion

             #region zlib64.dll

             string dllfile2 = Path.Combine(path,  " zlib64.dll ");
             if (!File.Exists(dllfile2))
            {
                File.WriteAllBytes(dllfile2, Resource.zlib64);
            }

             #endregion            
        }

         class LogBody
        {
             public  string logstoreName {  getset; }
             public  int ttl {  getset; }
             public  int shardCount {  getset; }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值