{"action":"created","issue":{"url":"https://api.github.com/repos/aws/aws-sdk-js/issues/896","repository_url":"https://api.github.com/repos/aws/aws-sdk-js","labels_url":"https://api.github.com/repos/aws/aws-sdk-js/issues/896/labels{/name}","comments_url":"https://api.github.com/repos/aws/aws-sdk-js/issues/896/comments","events_url":"https://api.github.com/repos/aws/aws-sdk-js/issues/896/events","html_url":"https://github.com/aws/aws-sdk-js/issues/896","id":131402781,"number":896,"title":"using pre-signed url for PUT returns SignatureDoesNotMatch using SSE-C","user":{"login":"XpressiveCode","id":957896,"avatar_url":"https://avatars.githubusercontent.com/u/957896?v=3","gravatar_id":"","url":"https://api.github.com/users/XpressiveCode","html_url":"https://github.com/XpressiveCode","followers_url":"https://api.github.com/users/XpressiveCode/followers","following_url":"https://api.github.com/users/XpressiveCode/following{/other_user}","gists_url":"https://api.github.com/users/XpressiveCode/gists{/gist_id}","starred_url":"https://api.github.com/users/XpressiveCode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XpressiveCode/subscriptions","organizations_url":"https://api.github.com/users/XpressiveCode/orgs","repos_url":"https://api.github.com/users/XpressiveCode/repos","events_url":"https://api.github.com/users/XpressiveCode/events{/privacy}","received_events_url":"https://api.github.com/users/XpressiveCode/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/aws/aws-sdk-js/labels/Question","name":"Question","color":"cc317c"}],"state":"open","locked":false,"assignee":{"login":"chrisradek","id":14189820,"avatar_url":"https://avatars.githubusercontent.com/u/14189820?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisradek","html_url":"https://github.com/chrisradek","followers_url":"https://api.github.com/users/chrisradek/followers","following_url":"https://api.github.com/users/chrisradek/following{/other_user}","gists_url":"https://api.github.com/users/chrisradek/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisradek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisradek/subscriptions","organizations_url":"https://api.github.com/users/chrisradek/orgs","repos_url":"https://api.github.com/users/chrisradek/repos","events_url":"https://api.github.com/users/chrisradek/events{/privacy}","received_events_url":"https://api.github.com/users/chrisradek/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2016-02-04T16:34:34Z","updated_at":"2016-02-05T20:57:40Z","closed_at":null,"body":"If I use `ServerSideEncryption` this entire workflow is perfect. I can upload a file using the pre-signed url and offer a link to my end users without having to send any header information (in the PUT or GET).  \r\n\r\nHowever, switching over to use SSECustomerKey causes the same workflow to error out. \r\n\r\nIt generates the proper signed url for a PUT request, but when I attempt to upload it fails with a SignatureDoesNotMatch error.\r\n\r\nI have seen in some other tickets that you have to send the same headers across when using a signedurl. However, I'm not sending those headers across when I use ServerSideEencryption and it works fine. \r\n\r\nI was hoping and assumed that because the signed url includes the header information in the query string that it would just work. Which it does for sse. The moment I switch it to sse-c it errors out.\r\n\r\nIf I do have to send the headers for sse-c.. how am I supposed to offer a link for people to click on our site? And why does it work for sse, but not sse-c?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/aws/aws-sdk-js/issues/comments/180552029","html_url":"https://github.com/aws/aws-sdk-js/issues/896#issuecomment-180552029","issue_url":"https://api.github.com/repos/aws/aws-sdk-js/issues/896","id":180552029,"user":{"login":"XpressiveCode","id":957896,"avatar_url":"https://avatars.githubusercontent.com/u/957896?v=3","gravatar_id":"","url":"https://api.github.com/users/XpressiveCode","html_url":"https://github.com/XpressiveCode","followers_url":"https://api.github.com/users/XpressiveCode/followers","following_url":"https://api.github.com/users/XpressiveCode/following{/other_user}","gists_url":"https://api.github.com/users/XpressiveCode/gists{/gist_id}","starred_url":"https://api.github.com/users/XpressiveCode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XpressiveCode/subscriptions","organizations_url":"https://api.github.com/users/XpressiveCode/orgs","repos_url":"https://api.github.com/users/XpressiveCode/repos","events_url":"https://api.github.com/users/XpressiveCode/events{/privacy}","received_events_url":"https://api.github.com/users/XpressiveCode/received_events","type":"User","site_admin":false},"created_at":"2016-02-05T20:57:40Z","updated_at":"2016-02-05T20:57:40Z","body":"The GetPreSignedUrlRequest method doesn't allow you to set the customer key in the .net SDK. At least I don't see any public properties that would allow me to do so."}}