public static IServiceClient CreateServiceClient(ClientConfiguration configuration)
        {
            Debug.Assert(configuration != null);

            var retryableServiceClient =
                new RetryableServiceClient(ServiceClient.Create(configuration))
                {
                    MaxRetryTimes = configuration.MaxErrorRetry
                };

            return retryableServiceClient;
        }
 public static IOss CreateOssClient(AccountSettings settings)
 {
     var clientConfiguration = new ClientConfiguration();
     if (!String.IsNullOrEmpty(settings.ProxyHost))
     {
         clientConfiguration.ProxyHost =  settings.ProxyHost;
         clientConfiguration.ProxyPort = settings.ProxyPort;
     }
     return new OssClient(settings.OssEndpoint,
                          settings.OssAccessKeyId,
                          settings.OssAccessKeySecret);
 }
 private void AssertRequestTimeValidatity(ClientConfiguration conf)
 {
     _ossClient = new OssClient(new Uri(Config.Endpoint), Config.AccessKeyId,
         Config.AccessKeySecret, conf);
     try
     {
         _ossClient.ListBuckets();
     }
     catch (Exception e)
     {
         Assert.Fail(e.Message);
     }
 }
        public void EpochTimeSettingUnormalTest()
        {
            ClientConfiguration conf = new ClientConfiguration();

            // Set custom time-adjust to local time after substracting 30 minutes,
            // Note that valid time offset is 15 minutes.
            var timeSpan = DateTime.UtcNow.AddMinutes(-30).Subtract(EpochTime);
            var localTicks = (long)timeSpan.TotalSeconds;
            conf.SetCustomEpochTicks(localTicks);
            AssertRequestTimeTooSkewed(conf);

            // Set custom time-adjust to local time after adding 30 minutes,
            // Note that valid time offset is 15 minutes.
            timeSpan = DateTime.UtcNow.AddMinutes(30).Subtract(EpochTime);
            localTicks = (long)timeSpan.TotalSeconds;
            conf.SetCustomEpochTicks(localTicks);
            AssertRequestTimeTooSkewed(conf);
        }
        public void EpochTimeSettingNormalTest()
        {
            ClientConfiguration conf = new ClientConfiguration();

            // Set custom time-adjust to local time on the assumption that
            // the local time is correct standard BEIJING time.
            var timeSpan = DateTime.UtcNow.Subtract(EpochTime);
            var localTicks = (long)timeSpan.TotalSeconds;
            conf.SetCustomEpochTicks(localTicks);
            AssertRequestTimeValidatity(conf);

            // Set custom time-adjust to local time after substracting 10 minutes.
            timeSpan = DateTime.UtcNow.AddMinutes(-10).Subtract(EpochTime);
            localTicks = (long)timeSpan.TotalSeconds;
            conf.SetCustomEpochTicks(localTicks);
            AssertRequestTimeValidatity(conf);

            // Set custom time-adjust to local time after adding 10 minutes.
            timeSpan = DateTime.UtcNow.AddMinutes(10).Subtract(EpochTime);
            localTicks = (long)timeSpan.TotalSeconds;
            conf.SetCustomEpochTicks(localTicks);
            AssertRequestTimeValidatity(conf);
        }
 private void AssertRequestTimeTooSkewed(ClientConfiguration conf)
 {
     _ossClient = new OssClient(new Uri(Config.Endpoint), Config.AccessKeyId,
         Config.AccessKeySecret, conf);
     try
     {
         _ossClient.ListBuckets();
     }
     catch (OssException e)
     {
         Assert.AreEqual(OssErrorCode.RequestTimeTooSkewed, e.ErrorCode);
     }
 }
        public static IOss CreateOssClientWithProxy(string endpoint, 
            string accessKeyId,
            string accessKeySecret,
            string proxyHost,
            int proxyPort,
            string proxyUser,
            string proxyPassword)
        {
            var clientConfiguration = new ClientConfiguration();
            if (!String.IsNullOrEmpty(proxyHost))
            {
                clientConfiguration.ProxyHost = proxyHost;
                clientConfiguration.ProxyPort = proxyPort;
                if (!String.IsNullOrEmpty(proxyUser) && !String.IsNullOrEmpty(proxyPassword))
                {
                    clientConfiguration.ProxyUserName = proxyUser;
                    clientConfiguration.ProxyPassword = proxyPassword;
                }
            }

            var uri = new Uri(endpoint.ToLower().Trim().StartsWith(HttpProto) ?
                endpoint.Trim() : HttpProto + endpoint.Trim());

            return new OssClient(uri, accessKeyId, accessKeySecret, clientConfiguration);
        }