diff --git a/src/Cuiliang.AliyunOssSdk.csproj b/src/Cuiliang.AliyunOssSdk.csproj index 5a46ce3..ea12bd2 100644 --- a/src/Cuiliang.AliyunOssSdk.csproj +++ b/src/Cuiliang.AliyunOssSdk.csproj @@ -6,6 +6,7 @@ Aliyun Cuiliang https://github.com/cnblogs/Cuiliang.AliyunOssSdk + true diff --git a/src/Entites/BucketInfo.cs b/src/Entites/BucketInfo.cs index 846867a..fb9623e 100644 --- a/src/Entites/BucketInfo.cs +++ b/src/Entites/BucketInfo.cs @@ -69,20 +69,27 @@ public static BucketInfo CreateByCname(Uri uri, string bucket) /// public static BucketInfo CreateByRegion(string region, string bucketName, bool useHttps = false, bool useInternal = false) { - var baseDomain = useInternal? "-internal.aliyuncs.com" : ".aliyuncs.com"; - var method = useHttps ? "https://" : "http://"; + var uriBuilder = new UriBuilder(); + uriBuilder.Scheme = useHttps ? "https" : "http"; + uriBuilder.Host = region + (useInternal ? "-internal.aliyuncs.com" : ".aliyuncs.com"); var bucket = new BucketInfo() { IsCname = false, BucketName = bucketName, - IsHttps = useHttps + IsHttps = useHttps, + EndpointUri = uriBuilder.Uri }; - bucket.EndpointUri = new Uri(method + region + baseDomain); - - // bucket名称为空的情况,直接访问oss - bucket.BucketUri = String.IsNullOrEmpty(bucketName)? bucket.EndpointUri : new Uri(method + bucketName + "." + region + baseDomain); + if(string.IsNullOrEmpty(bucketName)) + { + bucket.BucketUri = bucket.EndpointUri; + } + else + { + uriBuilder.Host = bucketName + "." + uriBuilder.Host; + bucket.BucketUri = uriBuilder.Uri; + } return bucket; } diff --git a/tests/Sample/Sample.csproj b/tests/Sample/Sample.csproj index 00d727d..bcd29b4 100644 --- a/tests/Sample/Sample.csproj +++ b/tests/Sample/Sample.csproj @@ -1,9 +1,9 @@  Exe - netcoreapp2.1 + netcoreapp2.1 - + latest