internal static WebServiceResponseEventArgs Create(AmazonWebServiceResponse response, IRequest request, IWebResponseData webResponseData) { WebServiceResponseEventArgs args = new WebServiceResponseEventArgs { RequestHeaders = request.Headers, Parameters = request.Parameters, ServiceName = request.ServiceName, Request = request.OriginalRequest, Endpoint = request.Endpoint, Response = response }; args.ResponseHeaders = new Dictionary<string, string>(); var headerNames = webResponseData.GetHeaderNames(); foreach (var responseHeaderName in headerNames) { string responseHeaderValue = webResponseData.GetHeaderValue(responseHeaderName); args.ResponseHeaders[responseHeaderName] = responseHeaderValue; } return args; }
internal static WebServiceResponseEventArgs Create(AmazonWebServiceResponse response, IRequest request, IWebResponseData webResponseData) { WebServiceResponseEventArgs args = new WebServiceResponseEventArgs { RequestHeaders = request.Headers, Parameters = request.Parameters, ServiceName = request.ServiceName, Request = request.OriginalRequest, Endpoint = request.Endpoint, Response = response }; args.ResponseHeaders = new Dictionary <string, string>(); if (webResponseData != null) { var headerNames = webResponseData.GetHeaderNames(); foreach (var responseHeaderName in headerNames) { string responseHeaderValue = webResponseData.GetHeaderValue(responseHeaderName); args.ResponseHeaders[responseHeaderName] = responseHeaderValue; } } return(args); }
private static void UnmarshallResult(XmlUnmarshallerContext context, GetObjectMetadataResponse response) { IWebResponseData responseData = context.ResponseData; if (responseData.IsHeaderPresent("x-amz-delete-marker")) { response.DeleteMarker = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-delete-marker")); } if (responseData.IsHeaderPresent("accept-ranges")) { response.AcceptRanges = S3Transforms.ToString(responseData.GetHeaderValue("accept-ranges")); } if (responseData.IsHeaderPresent("x-amz-expiration")) { response.Expiration = new Expiration(responseData.GetHeaderValue("x-amz-expiration")); } if (responseData.IsHeaderPresent("x-amz-restore")) { bool restoreInProgress; DateTime?restoreExpiration; AmazonS3Util.ParseAmzRestoreHeader(responseData.GetHeaderValue("x-amz-restore"), out restoreInProgress, out restoreExpiration); response.RestoreInProgress = restoreInProgress; response.RestoreExpiration = restoreExpiration; } if (responseData.IsHeaderPresent("Last-Modified")) { response.LastModified = S3Transforms.ToDateTime(responseData.GetHeaderValue("Last-Modified")); } if (responseData.IsHeaderPresent("ETag")) { response.ETag = S3Transforms.ToString(responseData.GetHeaderValue("ETag")); } if (responseData.IsHeaderPresent("x-amz-missing-meta")) { response.MissingMeta = S3Transforms.ToInt(responseData.GetHeaderValue("x-amz-missing-meta")); } if (responseData.IsHeaderPresent("x-amz-version-id")) { response.VersionId = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-version-id")); } if (responseData.IsHeaderPresent("Cache-Control")) { response.Headers.CacheControl = S3Transforms.ToString(responseData.GetHeaderValue("Cache-Control")); } if (responseData.IsHeaderPresent("Content-Disposition")) { response.Headers.ContentDisposition = S3Transforms.ToString(responseData.GetHeaderValue("Content-Disposition")); } if (responseData.IsHeaderPresent("Content-Encoding")) { response.Headers.ContentEncoding = S3Transforms.ToString(responseData.GetHeaderValue("Content-Encoding")); } if (responseData.IsHeaderPresent("Content-Length")) { response.Headers.ContentLength = long.Parse(responseData.GetHeaderValue("Content-Length"), CultureInfo.InvariantCulture); } if (responseData.IsHeaderPresent("Content-Type")) { response.Headers.ContentType = S3Transforms.ToString(responseData.GetHeaderValue("Content-Type")); } if (responseData.IsHeaderPresent("Expires")) { response.Expires = S3Transforms.ToDateTime(responseData.GetHeaderValue("Expires")); } if (responseData.IsHeaderPresent("x-amz-website-redirect-location")) { response.WebsiteRedirectLocation = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-website-redirect-location")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption")) { response.ServerSideEncryptionMethod = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-server-side-encryption")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption-customer-algorithm")) { response.ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.FindValue(responseData.GetHeaderValue("x-amz-server-side-encryption-customer-algorithm")); } if (responseData.IsHeaderPresent(HeaderKeys.XAmzServerSideEncryptionAwsKmsKeyIdHeader)) { response.ServerSideEncryptionKeyManagementServiceKeyId = S3Transforms.ToString(responseData.GetHeaderValue(HeaderKeys.XAmzServerSideEncryptionAwsKmsKeyIdHeader)); } foreach (var name in responseData.GetHeaderNames()) { if (name.StartsWith("x-amz-meta-", StringComparison.OrdinalIgnoreCase)) { response.Metadata[name] = responseData.GetHeaderValue(name); } } return; }
private static void UnmarshallResult(XmlUnmarshallerContext context, GetObjectResponse response) { response.ResponseStream = context.get_Stream(); IWebResponseData responseData = context.get_ResponseData(); if (responseData.IsHeaderPresent("x-amz-delete-marker")) { response.DeleteMarker = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-delete-marker")); } if (responseData.IsHeaderPresent("accept-ranges")) { response.AcceptRanges = S3Transforms.ToString(responseData.GetHeaderValue("accept-ranges")); } if (responseData.IsHeaderPresent("x-amz-expiration")) { response.Expiration = new Expiration(responseData.GetHeaderValue("x-amz-expiration")); } if (responseData.IsHeaderPresent("x-amz-restore")) { AmazonS3Util.ParseAmzRestoreHeader(responseData.GetHeaderValue("x-amz-restore"), out bool restoreInProgress, out DateTime? restoreExpiration); response.RestoreInProgress = restoreInProgress; response.RestoreExpiration = restoreExpiration; } if (responseData.IsHeaderPresent("Last-Modified")) { response.LastModified = S3Transforms.ToDateTime(responseData.GetHeaderValue("Last-Modified")); } if (responseData.IsHeaderPresent("ETag")) { response.ETag = S3Transforms.ToString(responseData.GetHeaderValue("ETag")); } if (responseData.IsHeaderPresent("x-amz-missing-meta")) { response.MissingMeta = S3Transforms.ToInt(responseData.GetHeaderValue("x-amz-missing-meta")); } if (responseData.IsHeaderPresent("x-amz-version-id")) { response.VersionId = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-version-id")); } if (responseData.IsHeaderPresent("Cache-Control")) { response.Headers.CacheControl = S3Transforms.ToString(responseData.GetHeaderValue("Cache-Control")); } if (responseData.IsHeaderPresent("Content-Disposition")) { response.Headers.ContentDisposition = S3Transforms.ToString(responseData.GetHeaderValue("Content-Disposition")); } if (responseData.IsHeaderPresent("Content-Encoding")) { response.Headers.ContentEncoding = S3Transforms.ToString(responseData.GetHeaderValue("Content-Encoding")); } if (responseData.IsHeaderPresent("Content-Length")) { response.Headers.ContentLength = long.Parse(responseData.GetHeaderValue("Content-Length"), CultureInfo.InvariantCulture); } if (responseData.IsHeaderPresent("Content-Type")) { response.Headers.ContentType = S3Transforms.ToString(responseData.GetHeaderValue("Content-Type")); } if (responseData.IsHeaderPresent("Expires")) { response.RawExpires = S3Transforms.ToString(responseData.GetHeaderValue("Expires")); } if (responseData.IsHeaderPresent("x-amz-website-redirect-location")) { response.WebsiteRedirectLocation = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-website-redirect-location")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption")) { response.ServerSideEncryptionMethod = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-server-side-encryption")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption-customer-algorithm")) { response.ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.FindValue(responseData.GetHeaderValue("x-amz-server-side-encryption-customer-algorithm")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption-aws-kms-key-id")) { response.ServerSideEncryptionKeyManagementServiceKeyId = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-server-side-encryption-aws-kms-key-id")); } if (responseData.IsHeaderPresent("x-amz-replication-status")) { response.ReplicationStatus = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-replication-status")); } if (responseData.IsHeaderPresent(S3Constants.AmzHeaderMultipartPartsCount)) { response.PartsCount = S3Transforms.ToInt(responseData.GetHeaderValue(S3Constants.AmzHeaderMultipartPartsCount)); } if (responseData.IsHeaderPresent("x-amz-storage-class")) { response.StorageClass = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-storage-class")); } if (responseData.IsHeaderPresent(S3Constants.AmzHeaderRequestCharged)) { response.RequestCharged = RequestCharged.FindValue(responseData.GetHeaderValue(S3Constants.AmzHeaderRequestCharged)); } if (responseData.IsHeaderPresent(S3Constants.AmzHeaderTaggingCount)) { response.TagCount = S3Transforms.ToInt(responseData.GetHeaderValue(S3Constants.AmzHeaderTaggingCount)); } string[] headerNames = responseData.GetHeaderNames(); foreach (string text in headerNames) { if (text.StartsWith("x-amz-meta-", StringComparison.OrdinalIgnoreCase)) { response.Metadata[text] = responseData.GetHeaderValue(text); } } }
private static void UnmarshallResult(XmlUnmarshallerContext context, GetObjectMetadataResponse response) { IWebResponseData responseData = context.ResponseData; if (responseData.IsHeaderPresent("x-amz-delete-marker")) { response.DeleteMarker = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-delete-marker")); } if (responseData.IsHeaderPresent("accept-ranges")) { response.AcceptRanges = S3Transforms.ToString(responseData.GetHeaderValue("accept-ranges")); } if (context.ResponseData.IsHeaderPresent("content-range")) { response.ContentRange = S3Transforms.ToString(responseData.GetHeaderValue("content-range")); } if (responseData.IsHeaderPresent("x-amz-expiration")) { response.Expiration = new Expiration(responseData.GetHeaderValue("x-amz-expiration")); } if (responseData.IsHeaderPresent("x-amz-restore")) { bool restoreInProgress; DateTime?restoreExpiration; AmazonS3Util.ParseAmzRestoreHeader(responseData.GetHeaderValue("x-amz-restore"), out restoreInProgress, out restoreExpiration); response.RestoreInProgress = restoreInProgress; response.RestoreExpiration = restoreExpiration; } if (responseData.IsHeaderPresent("Last-Modified")) { response.LastModified = S3Transforms.ToDateTime(responseData.GetHeaderValue("Last-Modified")); } if (responseData.IsHeaderPresent("ETag")) { response.ETag = S3Transforms.ToString(responseData.GetHeaderValue("ETag")); } if (responseData.IsHeaderPresent("x-amz-missing-meta")) { response.MissingMeta = S3Transforms.ToInt(responseData.GetHeaderValue("x-amz-missing-meta")); } if (responseData.IsHeaderPresent("x-amz-version-id")) { response.VersionId = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-version-id")); } if (responseData.IsHeaderPresent("Cache-Control")) { response.Headers.CacheControl = S3Transforms.ToString(responseData.GetHeaderValue("Cache-Control")); } if (responseData.IsHeaderPresent("Content-Disposition")) { response.Headers.ContentDisposition = S3Transforms.ToString(responseData.GetHeaderValue("Content-Disposition")); } if (responseData.IsHeaderPresent("Content-Encoding")) { response.Headers.ContentEncoding = S3Transforms.ToString(responseData.GetHeaderValue("Content-Encoding")); } if (responseData.IsHeaderPresent("Content-Length")) { response.Headers.ContentLength = long.Parse(responseData.GetHeaderValue("Content-Length"), CultureInfo.InvariantCulture); } if (responseData.IsHeaderPresent("Content-Type")) { response.Headers.ContentType = S3Transforms.ToString(responseData.GetHeaderValue("Content-Type")); } if (responseData.IsHeaderPresent("Expires")) { response.RawExpires = S3Transforms.ToString(responseData.GetHeaderValue("Expires")); } if (responseData.IsHeaderPresent("x-amz-website-redirect-location")) { response.WebsiteRedirectLocation = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-website-redirect-location")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption")) { response.ServerSideEncryptionMethod = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-server-side-encryption")); } if (responseData.IsHeaderPresent("x-amz-server-side-encryption-customer-algorithm")) { response.ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.FindValue(responseData.GetHeaderValue("x-amz-server-side-encryption-customer-algorithm")); } if (responseData.IsHeaderPresent(HeaderKeys.XAmzServerSideEncryptionAwsKmsKeyIdHeader)) { response.ServerSideEncryptionKeyManagementServiceKeyId = S3Transforms.ToString(responseData.GetHeaderValue(HeaderKeys.XAmzServerSideEncryptionAwsKmsKeyIdHeader)); } if (responseData.IsHeaderPresent("x-amz-replication-status")) { response.ReplicationStatus = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-replication-status")); } if (responseData.IsHeaderPresent(S3Constants.AmzHeaderMultipartPartsCount)) { response.PartsCount = S3Transforms.ToInt(responseData.GetHeaderValue(S3Constants.AmzHeaderMultipartPartsCount)); } if (responseData.IsHeaderPresent("x-amz-object-lock-mode")) { response.ObjectLockMode = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-object-lock-mode")); } if (responseData.IsHeaderPresent("x-amz-object-lock-retain-until-date")) { response.ObjectLockRetainUntilDate = S3Transforms.ToDateTime(responseData.GetHeaderValue("x-amz-object-lock-retain-until-date")); } if (responseData.IsHeaderPresent("x-amz-object-lock-legal-hold")) { response.ObjectLockLegalHoldStatus = S3Transforms.ToString(responseData.GetHeaderValue("x-amz-object-lock-legal-hold")); } if (responseData.IsHeaderPresent(HeaderKeys.XAmzStorageClassHeader)) { response.StorageClass = S3Transforms.ToString(responseData.GetHeaderValue(HeaderKeys.XAmzStorageClassHeader)); } if (responseData.IsHeaderPresent(S3Constants.AmzHeaderRequestCharged)) { response.RequestCharged = RequestCharged.FindValue(responseData.GetHeaderValue(S3Constants.AmzHeaderRequestCharged)); } if (responseData.IsHeaderPresent(S3Constants.AmzHeaderArchiveStatus)) { response.ArchiveStatus = S3Transforms.ToString(responseData.GetHeaderValue(S3Constants.AmzHeaderArchiveStatus)); } foreach (var name in responseData.GetHeaderNames()) { if (name.StartsWith("x-amz-meta-", StringComparison.OrdinalIgnoreCase)) { response.Metadata[name] = AWSConfigsS3.EnableUnicodeEncodingForObjectMetadata ? Uri.UnescapeDataString(responseData.GetHeaderValue(name)) : responseData.GetHeaderValue(name); } } return; }