Skip to content

Commit e073b2e

Browse files
committed
content language bug fix
stack-info: PR: #4224, branch: GarrettBeatty/gcbeatty/taskoptimization/5
1 parent 0942990 commit e073b2e

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

sdk/src/Core/Amazon.Runtime/Pipeline/HttpHandler/_netstandard/HttpRequestMessageFactory.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ public class HttpWebRequestMessage : IHttpRequest<HttpContent>
400400
HeaderKeys.ContentRangeHeader,
401401
HeaderKeys.ContentMD5Header,
402402
HeaderKeys.ContentEncodingHeader,
403+
HeaderKeys.ContentLanguageHeader,
403404
HeaderKeys.ContentDispositionHeader,
404405
HeaderKeys.Expires
405406
};
@@ -731,6 +732,10 @@ private void WriteContentHeaders(IDictionary<string, string> contentHeaders)
731732
_request.Content.Headers.TryAddWithoutValidation(HeaderKeys.ContentEncodingHeader,
732733
contentEncodingHeader);
733734

735+
if (contentHeaders.TryGetValue(HeaderKeys.ContentLanguageHeader, out var contentLanguageHeader))
736+
_request.Content.Headers.TryAddWithoutValidation(HeaderKeys.ContentLanguageHeader,
737+
contentLanguageHeader);
738+
734739
if (contentHeaders.TryGetValue(HeaderKeys.ContentDispositionHeader, out var contentDispositionHeader))
735740
_request.Content.Headers.TryAddWithoutValidation(HeaderKeys.ContentDispositionHeader,
736741
contentDispositionHeader);

sdk/src/Core/Amazon.Util/HeaderKeys.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public abstract class HeaderKeys
3737
public const string ContentMD5Header = "Content-MD5";
3838
public const string ContentEncodingHeader = "Content-Encoding";
3939
public const string ContentDispositionHeader = "Content-Disposition";
40+
public const string ContentLanguageHeader = "Content-Language";
4041
public const string ETagHeader = "ETag";
4142
public const string Expires = "Expires";
4243
public const string AuthorizationHeader = "Authorization";

sdk/test/Services/S3/IntegrationTests/PutObjectTests.cs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,38 @@ public void PutObjectWithContentEncodingTests()
628628
PutObjectWithoutContentEncoding();
629629
}
630630

631+
[TestMethod]
632+
[TestCategory("S3")]
633+
public void TestPutObjectWithContentLanguage()
634+
{
635+
var key = "contentLanguageTest" + random.Next();
636+
var contentLanguage = "en-US";
637+
638+
var request = new PutObjectRequest
639+
{
640+
BucketName = bucketName,
641+
Key = key,
642+
ContentBody = testContent
643+
};
644+
request.Headers.ContentLanguage = contentLanguage;
645+
646+
// Put the object
647+
var putResponse = Client.PutObject(request);
648+
Assert.IsTrue(putResponse.ETag.Length > 0);
649+
650+
// Verify via GetObject
651+
using (var getResponse = Client.GetObject(bucketName, key))
652+
{
653+
Assert.AreEqual(contentLanguage, getResponse.Headers.ContentLanguage);
654+
Assert.AreEqual(contentLanguage, getResponse.ContentLanguage);
655+
656+
}
657+
658+
// Verify via GetObjectMetadata
659+
var metadata = Client.GetObjectMetadata(bucketName, key);
660+
Assert.AreEqual(contentLanguage, metadata.Headers.ContentLanguage);
661+
}
662+
631663
private void PutObjectWithContentEncoding()
632664
{
633665
var request = CreatePutObjectRequest();
@@ -1538,4 +1570,4 @@ public override bool CanSeek
15381570
}
15391571
}
15401572
}
1541-
}
1573+
}

0 commit comments

Comments
 (0)