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.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(HeaderKeys.XAmzStorageClassHeader))
response.StorageClass = S3Transforms.ToString(responseData.GetHeaderValue(HeaderKeys.XAmzStorageClassHeader));
if (responseData.IsHeaderPresent(S3Constants.AmzHeaderRequestCharged))
response.RequestCharged = RequestCharged.FindValue(responseData.GetHeaderValue(S3Constants.AmzHeaderRequestCharged));
foreach (var name in responseData.GetHeaderNames())
{
if (name.StartsWith("x-amz-meta-", StringComparison.OrdinalIgnoreCase))
response.Metadata[name] = responseData.GetHeaderValue(name);
}
return;
}