示例#1
0
    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);
    }
示例#2
0
        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);
                }
            }
        }