Browse Source

提交denny的url处理

MIke 3 years ago
parent
commit
0e5cbd498f
1 changed files with 164 additions and 4 deletions
  1. 164 4
      Common/ConvertHelper.cs

+ 164 - 4
Common/ConvertHelper.cs

@@ -1,6 +1,7 @@
 using System;
 using Newtonsoft.Json;
 using System.Globalization;
+using WingInterfaceLibrary.Enum;
 
 namespace WingDeviceService.Common
 {
@@ -179,6 +180,7 @@ namespace WingDeviceService.Common
             return unixTime;
         }
 
+        
         /// <summary>
         /// url转token
         /// </summary>
@@ -192,16 +194,16 @@ namespace WingDeviceService.Common
                 return fileToken;
             }
             var fileName = "";
-            if (url.Contains("http://"))
+            if (url.Contains("http://") || url.Contains("https://"))
             {
-                //需要做处理
-                int lastIndex = url.LastIndexOf('/');
-                fileName = url.Substring(lastIndex + 1);
+                fileToken = TransferUrlToToken(url);
+                return fileToken;
             }
             else
             {
                 fileName = url;
             }
+            //处理 传的是token 的情况
             if (string.IsNullOrEmpty(fileName))
             {
                 return fileToken;
@@ -234,5 +236,163 @@ namespace WingDeviceService.Common
             }
             return fileToken;
         }
+
+        /// <summary>
+        /// url转token
+        /// </summary>
+        /// <param name="url">url地址</param>
+        /// <returns>true</returns>
+        private static string TransferUrlToToken(string url)
+        {
+            //需要做处理
+            var fileName = "";
+            var newUrl = url.Replace("http://", "").Replace("https://", "");
+            var urlArray = newUrl.Split('/');
+            if (urlArray.Length > 2)
+            {
+                var secondDomain = urlArray[1];
+                var newFileName = urlArray[2];
+                try
+                {
+                    //处理扩展名
+                    int lastIndex = newFileName.LastIndexOf('.');
+                    var fileExtend = newFileName.Substring(lastIndex + 1);
+                    var fileTypeEnum = (WingInterfaceLibrary.Enum.UploadFileTypeEnum)Enum.Parse(typeof(WingInterfaceLibrary.Enum.UploadFileTypeEnum), fileExtend.ToUpper());
+                    var fileType = Enum.GetName(typeof(WingInterfaceLibrary.Enum.UploadFileTypeEnum), fileTypeEnum.GetHashCode());
+                    if (!string.IsNullOrEmpty(fileType))
+                    {
+                        fileName = newFileName.Substring(0, lastIndex) + "_" + fileTypeEnum.GetHashCode();
+                    }
+                    else
+                    {
+                        fileName = "";
+                    }
+                    //处理其他信息
+                    var secondDomainArray = secondDomain.Split('.');
+                    if (secondDomainArray.Length > 2)
+                    {
+                        var serverType = (StorageServerEnum)Enum.Parse(typeof(StorageServerEnum), secondDomainArray[1].ToUpper());
+                        var serverTypeStr = Enum.GetName(typeof(StorageServerEnum), serverType.GetHashCode());
+                        if (!string.IsNullOrEmpty(serverTypeStr))
+                        {
+                            fileName += "_" + serverType.GetHashCode();
+                        }
+                        else
+                        {
+                            fileName += "_0";
+                        }
+                        var nodeType = (StorageNodeEnum)Enum.Parse(typeof(StorageNodeEnum), secondDomainArray[2].Replace("-", "_"));
+                        var nodeTypeStr = Enum.GetName(typeof(StorageNodeEnum), nodeType.GetHashCode());
+                        if (!string.IsNullOrEmpty(nodeTypeStr))
+                        {
+                            fileName += "_" + nodeType.GetHashCode();
+                        }
+                        else
+                        {
+                            fileName += "_0";
+                        }
+                        int bucketValue = (int)GetStorageBucketType(secondDomainArray[0].Replace("-", "_"));
+                        fileName += "_" + bucketValue;
+                    }
+                    else if (secondDomainArray.Length > 1)
+                    {
+                        var serverType = (StorageServerEnum)Enum.Parse(typeof(StorageServerEnum), secondDomainArray[0].ToUpper());
+                        var serverTypeStr = Enum.GetName(typeof(StorageServerEnum), serverType.GetHashCode());
+                        if (!string.IsNullOrEmpty(serverTypeStr))
+                        {
+                            fileName += "_" + serverType.GetHashCode();
+                        }
+                        else
+                        {
+                            fileName += "_0";
+                        }
+                        var nodeType = (StorageNodeEnum)Enum.Parse(typeof(StorageNodeEnum), secondDomainArray[1].Replace("-", "_"));
+                        var nodeTypeStr = Enum.GetName(typeof(StorageNodeEnum), nodeType.GetHashCode());
+                        if (!string.IsNullOrEmpty(nodeTypeStr))
+                        {
+                            fileName += "_" + nodeType.GetHashCode();
+                        }
+                        else
+                        {
+                            fileName += "_0";
+                        }
+                    }
+                    else if (secondDomainArray.Length > 0)
+                    {
+                        var serverType = (StorageServerEnum)Enum.Parse(typeof(StorageServerEnum), secondDomainArray[0].ToUpper());
+                        var serverTypeStr = Enum.GetName(typeof(StorageServerEnum), serverType.GetHashCode());
+                        if (!string.IsNullOrEmpty(serverTypeStr))
+                        {
+                            fileName += "_" + serverType.GetHashCode();
+                        }
+                        else
+                        {
+                            fileName += "_0";
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    fileName = "";
+                }
+            }
+            return fileName;
+        }
+
+        /// <summary>
+        /// 获取当前存储桶
+        /// </summary>
+        /// <param name="storageBucket">请求参数<param>
+        /// <returns>结果值</returns>
+        public static object GetStorageBucketType(string storageBucket, int category = 0)
+        {
+            if (category == 0)
+            {
+                int type;
+                switch (storageBucket)
+                {
+                    case "Flyinsono_BJ_1300984704":
+                        type = StorageBucketEnum.Flyinsono_BJ_1300984704.GetHashCode();
+                        break;
+                    case "Flyinsono_HK_1300984704":
+                        type = StorageBucketEnum.Flyinsono_HK_1300984704.GetHashCode();
+                        break;
+                    case "Flyinsono_FRA_1300984704":
+                        type = StorageBucketEnum.Flyinsono_FRA_1300984704.GetHashCode();
+                        break;
+                    case "Flyinsono_BOM_1300984704":
+                        type = StorageBucketEnum.Flyinsono_BOM_1300984704.GetHashCode();
+                        break;
+                    default:
+                        type = StorageBucketEnum.Flyinsono_BJ_1300984704.GetHashCode();
+                        break;
+                }
+                return type;
+            }
+            else
+            {
+                string type;
+                switch (storageBucket)
+                {
+                    case "0":
+                        type = Enum.GetName(typeof(StorageBucketEnum), StorageBucketEnum.Flyinsono_BJ_1300984704.GetHashCode());
+                        break; 
+                    case "1":
+                        type = Enum.GetName(typeof(StorageBucketEnum), StorageBucketEnum.Flyinsono_HK_1300984704.GetHashCode());
+                        break;
+                    case "2":
+                        type = Enum.GetName(typeof(StorageBucketEnum), StorageBucketEnum.Flyinsono_FRA_1300984704.GetHashCode());
+                        break;
+                    case "3":
+                        type = Enum.GetName(typeof(StorageBucketEnum), StorageBucketEnum.Flyinsono_BOM_1300984704.GetHashCode());
+                        break;
+                    default:
+                        type = "Flyinsono_BJ_1300984704";
+                        break;
+                }
+                return type;
+            }
+        }
+
     }
 }