public MinioClient(string endpoint, string accessKey = "", string secretKey = "", string region = "", string sessionToken = "") { Secure = false; // Save user entered credentials BaseUrl = endpoint; AccessKey = accessKey; SecretKey = secretKey; SessionToken = sessionToken; Region = region; // Instantiate a region cache regionCache = BucketRegionCache.Instance; if (string.IsNullOrEmpty(BaseUrl)) { throw new InvalidEndpointException("Endpoint cannot be empty."); } var host = BaseUrl; var scheme = Secure ? utils.UrlEncode("https") : utils.UrlEncode("http"); // This is the actual url pointed to for all HTTP requests Endpoint = string.Format("{0}://{1}", scheme, host); uri = RequestUtil.GetEndpointURL(BaseUrl, Secure); RequestUtil.ValidateEndpoint(uri, Endpoint); HTTPClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", FullUserAgent); }
public void TestGetEndpointURL() { Minio.RequestUtil.GetEndpointURL("s3.amazonaws.com", true); object[] parameterValuesArray = { new Object[] { "s3.amazonaws.com", true, "testbucket", null, false }, new object[] { "testbucket.s3.amazonaws.com", true } }; object[] parameterValuesArray1 = { "s3.amazonaws.com", true, "testbucket", "testobject", false }; object[][] testCases = { new Object[] { new Object[] { "s3.cn-north-1.amazonaws.com.cn", true }, new Object[] { "https://s3.cn-north-1.amazonaws.com.cn", null, true} }, new Object[] { new Object[] { "s3.amazonaws.com:443", true }, new Object[] { "https://s3.amazonaws.com:443", null, true} }, new Object[] { new Object[] { "s3.amazonaws.com", true }, new Object[] { "https://s3.amazonaws.com", null, true} }, new Object[] { new Object[] { "s3.amazonaws.com", false }, new Object[] { "http://s3.amazonaws.com", null, true} }, new Object[] { new Object[] { "192.168.1.1:9000", false }, new object[] { "http://192.168.1.1:9000", null, true} }, new Object[] { new Object[] { "192.168.1.1:9000", true }, new object[] { "https://192.168.1.1:9000", null, true} }, new Object[] { new Object[] { "13333.123123.-", true }, new object[] { "", new InvalidEndpointException("Endpoint: 13333.123123.- does not follow ip address or domain name standards."), false} }, new Object[] { new Object[] { "s3.aamzza.-", true }, new object[] { "", new InvalidEndpointException("Endpoint: s3.aamzza.- does not follow ip address or domain name standards."), false} }, new Object[] { new Object[] { "", true }, new object[] { "", new InvalidEndpointException("Endpoint: does not follow ip address or domain name standards."), false} }, }; for (int i = 0; i < testCases.Length; i++) { Object[] testdata = testCases[i]; Object[] testCase = (Object[])testdata[0]; Object[] expectedValues = (Object[])testdata[1]; try { Uri endPointURL = RequestUtil.GetEndpointURL((string)testCase[0], (bool)testCase[1]); Assert.AreEqual(endPointURL.OriginalString, expectedValues[0]); } catch (InvalidEndpointException ex) { Assert.AreEqual(ex.Message, ((InvalidEndpointException)expectedValues[1]).Message); } } }