示例#1
0
        /// <summary>
        /// 获取当前传入的区域信息
        /// </summary>
        /// <param name="request">http 请求信息</param>
        /// <param name="regionNameOverride">  region name 字符串</param>
        /// <returns>格式化后的region 信息 </returns>
        private string ParseRegion(SdkHttpRequest request, string regionNameOverride)
        {
#if NET35
            return(!string.IsNullOrEmpty(regionNameOverride) && !string.IsNullOrEmpty(regionNameOverride.Trim()) ? regionNameOverride
                  : HostNameUtils.ParseRegion(request.GetEndpoint().Host
                                              , this.ServiceName));
#else
            return(!string.IsNullOrWhiteSpace(regionNameOverride)? regionNameOverride
                    : HostNameUtils.ParseRegion(request.GetEndpoint().Host
                                                , this.ServiceName));
#endif
        }
示例#2
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="request">http 请求信息</param>
        /// <param name="signingDateOverride">要重写的时间信息</param>
        /// <param name="regionNameOverride">要重写的region name</param>
        /// <param name="serviceName">要重写的service name</param>
        /// <param name="signingAlgorithm">要使用的加密算法字符串</param>
        public SignerRequestParams(SdkHttpRequest request,
                                   DateTime?signingDateOverride, string regionNameOverride,
                                   string serviceName, string signingAlgorithm)
        {
#if NET35
            if (string.IsNullOrEmpty(signingAlgorithm) || string.IsNullOrEmpty(signingAlgorithm.Trim()))
#else
            if (string.IsNullOrWhiteSpace(signingAlgorithm))
#endif
            {
                throw new ArgumentNullException("Signing Algorithm can not be null.");
            }
            this.Request = request ?? throw new ArgumentNullException("Request can not be null.");
            DateTime dateTimeUtcNow = signingDateOverride == null?DateTime.UtcNow:signingDateOverride.Value;
            this.FormattedSigningDate = dateTimeUtcNow.ToString("yyyyMMdd");
            this.ServiceName          = serviceName;
            this.RegionName           = ParseRegion(request, regionNameOverride);
            this.Scope = GenerateScope(this.FormattedSigningDate, this.ServiceName, this.RegionName);
            this.FormattedSigningDateTime = dateTimeUtcNow.ToString("yyyyMMdd'T'HHmmss'Z'");
            this.SigningAlgorithm         = signingAlgorithm;
        }