• 阿里云日志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 " + contentMD5 + " application/json " + date + " x-log-apiversion:0.6.0 x-log-signaturemethod:hmac-sha1 /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; }
            }
  • 相关阅读:
    docker 常用命令
    docker 部署安装
    Dockerfile
    Docker挂载本地目录
    es的基本理论与简单操作
    第一个gradle工程
    记录下自己git命令
    flink 自定义 mysql source
    flink kafka source
    flink file source
  • 原文地址:https://www.cnblogs.com/94cool/p/6027164.html
Copyright © 2020-2023  润新知