/// <summary> /// 根据所属区域创建bucket地址信息 /// </summary> /// <param name="region"></param> /// <param name="bucketName"></param> /// <param name="useHttps"></param> /// <param name="useInternal">是否使用内网地址</param> /// <returns></returns> public static BucketInfo CreateByRegion(string region, string bucketName, bool useHttps = false, bool useInternal = false) { 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, EndpointUri = uriBuilder.Uri }; if (string.IsNullOrEmpty(bucketName)) { bucket.BucketUri = bucket.EndpointUri; } else { uriBuilder.Host = bucketName + "." + uriBuilder.Host; bucket.BucketUri = uriBuilder.Uri; } return(bucket); }
/// <summary> /// 使用自定义域名创建地址信息 /// </summary> /// <param name="uri"></param> /// <param name="bucket"></param> /// <returns></returns> public static BucketInfo CreateByCname(Uri uri, string bucket) { var newBucket = new BucketInfo() { IsCname = true, IsHttps = uri.Scheme.ToLower() == "https", BucketName = bucket, EndpointUri = uri, BucketUri = uri, //TODO? CName情况下,oss端点地址和bucket端点地址一致? }; return(newBucket); }
/// <summary> /// 根据所属区域创建bucket地址信息 /// </summary> /// <param name="region"></param> /// <param name="bucketName"></param> /// <param name="useHttps"></param> /// <param name="useInternal">是否使用内网地址</param> /// <returns></returns> 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 bucket = new BucketInfo() { IsCname = false, BucketName = bucketName, IsHttps = useHttps }; bucket.EndpointUri = new Uri(method + region + baseDomain); // bucket名称为空的情况,直接访问oss bucket.BucketUri = String.IsNullOrEmpty(bucketName)? bucket.EndpointUri : new Uri(method + bucketName + "." + region + baseDomain); return(bucket); }