{"action":"created","issue":{"url":"https://api.github.com/repos/cloudyr/aws.s3/issues/16","labels_url":"https://api.github.com/repos/cloudyr/aws.s3/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/cloudyr/aws.s3/issues/16/comments","events_url":"https://api.github.com/repos/cloudyr/aws.s3/issues/16/events","html_url":"https://github.com/cloudyr/aws.s3/issues/16","id":96969712,"number":16,"title":"object PUT operations require `Content-Length` in the header","user":{"login":"almartin82","id":782135,"avatar_url":"https://avatars.githubusercontent.com/u/782135?v=3","gravatar_id":"","url":"https://api.github.com/users/almartin82","html_url":"https://github.com/almartin82","followers_url":"https://api.github.com/users/almartin82/followers","following_url":"https://api.github.com/users/almartin82/following{/other_user}","gists_url":"https://api.github.com/users/almartin82/gists{/gist_id}","starred_url":"https://api.github.com/users/almartin82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/almartin82/subscriptions","organizations_url":"https://api.github.com/users/almartin82/orgs","repos_url":"https://api.github.com/users/almartin82/repos","events_url":"https://api.github.com/users/almartin82/events{/privacy}","received_events_url":"https://api.github.com/users/almartin82/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-07-24T05:38:21Z","updated_at":"2015-07-25T02:26:47Z","closed_at":null,"body":"per the [doc](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) `Content-Length` is a required header for a PUT operation on a bucket.  @cboettig perhaps this helps with #5?  Not sure if it also applies to POST operations (haven't delved into that doc yet)"},"comment":{"url":"https://api.github.com/repos/cloudyr/aws.s3/issues/comments/124789551","html_url":"https://github.com/cloudyr/aws.s3/issues/16#issuecomment-124789551","issue_url":"https://api.github.com/repos/cloudyr/aws.s3/issues/16","id":124789551,"user":{"login":"almartin82","id":782135,"avatar_url":"https://avatars.githubusercontent.com/u/782135?v=3","gravatar_id":"","url":"https://api.github.com/users/almartin82","html_url":"https://github.com/almartin82","followers_url":"https://api.github.com/users/almartin82/followers","following_url":"https://api.github.com/users/almartin82/following{/other_user}","gists_url":"https://api.github.com/users/almartin82/gists{/gist_id}","starred_url":"https://api.github.com/users/almartin82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/almartin82/subscriptions","organizations_url":"https://api.github.com/users/almartin82/orgs","repos_url":"https://api.github.com/users/almartin82/repos","events_url":"https://api.github.com/users/almartin82/events{/privacy}","received_events_url":"https://api.github.com/users/almartin82/received_events","type":"User","site_admin":false},"created_at":"2015-07-25T02:26:47Z","updated_at":"2015-07-25T02:26:47Z","body":"@leeper here is (hopefully) a reproducible example:\r\n\r\n```\r\ntest_that(\"basic usage of putobject for signed in user\", {\r\n  fileConn <- file(\"s3test.txt\")\r\n  writeLines(c(\"cloudyr\", \"test\"), fileConn)\r\n  close(fileConn)\r\n  \r\n  ex <- putobject(\r\n    file = 's3test.txt',\r\n    bucket = 'hpk', \r\n    object = 's3test.txt',\r\n    key = Sys.getenv(\"TRAVIS_AWS_ACCESS_KEY_ID\"), \r\n    secret = Sys.getenv(\"TRAVIS_AWS_SECRET_ACCESS_KEY\")\r\n  )\r\n  \r\n  if (file.exists('s3test.txt')) file.remove('s3test.txt')\r\n})\r\n```\r\n\r\nreturns\r\n\r\n```\r\n$Code\r\n[1] \"XAmzContentSHA256Mismatch\"\r\n\r\n$Message\r\n[1] \"The provided 'x-amz-content-sha256' header does not match what was computed.\"\r\n\r\n$ClientComputedContentSHA256\r\n[1] \"2a9f2e2f3792576c5bf6155a3a83a7834fd5832d177aaf1f2f580ec5cd339c67\"\r\n\r\n$S3ComputedContentSHA256\r\n[1] \"d3b0a764aeba588d3dd98a67cd896a6ca3732ea2122d11f4715d26fd32ff2f22\"\r\n\r\n$RequestId\r\n[1] \"BD0EC478E138F5E3\"\r\n\r\n$HostId\r\n[1] \"Qlfb/3gxUK5S7ZDcvbxt0nEMJKCQDfolpzxe7wVkURi8HZZT/DYq/fZUPoNEjS8X\"\r\n\r\nattr(,\"headers\")\r\n$`x-amz-request-id`\r\n[1] \"BD0EC478E138F5E3\"\r\n\r\n$`x-amz-id-2`\r\n[1] \"Qlfb/3gxUK5S7ZDcvbxt0nEMJKCQDfolpzxe7wVkURi8HZZT/DYq/fZUPoNEjS8X\"\r\n\r\n$`content-type`\r\n[1] \"application/xml\"\r\n\r\n$`transfer-encoding`\r\n[1] \"chunked\"\r\n\r\n$date\r\n[1] \"Sat, 25 Jul 2015 02:26:14 GMT\"\r\n\r\n$connection\r\n[1] \"close\"\r\n\r\n$server\r\n[1] \"AmazonS3\"\r\n\r\nattr(,\"class\")\r\n[1] \"insensitive\" \"list\"       \r\nattr(,\"class\")\r\n[1] \"aws_error\"\r\n```"}}