Amazon.S3.Internal.S3Signer.Sign C# (CSharp) Method

Sign() public method

public Sign ( IRequest request, IClientConfig clientConfig, RequestMetrics metrics, string awsAccessKeyId, string awsSecretAccessKey ) : void
request IRequest
clientConfig IClientConfig
metrics RequestMetrics
awsAccessKeyId string
awsSecretAccessKey string
return void
        public override void Sign(IRequest request, IClientConfig clientConfig, RequestMetrics metrics, string awsAccessKeyId, string awsSecretAccessKey)
        {
            var signer = SelectSigner(this, _useSigV4, request, clientConfig);
            var aws4Signer = signer as AWS4Signer;
            var useV4 = aws4Signer != null;

            if (useV4)
            {
                AmazonS3Uri s3Uri;
                if (AmazonS3Uri.TryParseAmazonS3Uri(request.Endpoint, out s3Uri))
                {
                    if (s3Uri.Bucket != null)
                    {
                        RegionEndpoint cachedRegion;
                        if (BucketRegionDetector.BucketRegionCache.TryGetValue(s3Uri.Bucket, out cachedRegion))
                        {
                            request.AlternateEndpoint = cachedRegion;
                        }
                    }
                }

                var signingResult = aws4Signer.SignRequest(request, clientConfig, metrics, awsAccessKeyId, awsSecretAccessKey);
                request.Headers[HeaderKeys.AuthorizationHeader] = signingResult.ForAuthorizationHeader;
                if (request.UseChunkEncoding)
                    request.AWS4SignerResult = signingResult;
            }
            else
                SignRequest(request, metrics, awsAccessKeyId, awsSecretAccessKey);
        }