{"action":"created","issue":{"url":"https://api.github.com/repos/seratch/AWScala/issues/11","labels_url":"https://api.github.com/repos/seratch/AWScala/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/seratch/AWScala/issues/11/comments","events_url":"https://api.github.com/repos/seratch/AWScala/issues/11/events","html_url":"https://github.com/seratch/AWScala/issues/11","id":26767201,"number":11,"title":"Default empty constructor for AmazonS3Client (and others)","user":{"login":"andyscott","id":310363,"avatar_url":"https://avatars.githubusercontent.com/u/310363?v=3","gravatar_id":"","url":"https://api.github.com/users/andyscott","html_url":"https://github.com/andyscott","followers_url":"https://api.github.com/users/andyscott/followers","following_url":"https://api.github.com/users/andyscott/following{/other_user}","gists_url":"https://api.github.com/users/andyscott/gists{/gist_id}","starred_url":"https://api.github.com/users/andyscott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andyscott/subscriptions","organizations_url":"https://api.github.com/users/andyscott/orgs","repos_url":"https://api.github.com/users/andyscott/repos","events_url":"https://api.github.com/users/andyscott/events{/privacy}","received_events_url":"https://api.github.com/users/andyscott/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"seratch","id":19658,"avatar_url":"https://avatars.githubusercontent.com/u/19658?v=3","gravatar_id":"","url":"https://api.github.com/users/seratch","html_url":"https://github.com/seratch","followers_url":"https://api.github.com/users/seratch/followers","following_url":"https://api.github.com/users/seratch/following{/other_user}","gists_url":"https://api.github.com/users/seratch/gists{/gist_id}","starred_url":"https://api.github.com/users/seratch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seratch/subscriptions","organizations_url":"https://api.github.com/users/seratch/orgs","repos_url":"https://api.github.com/users/seratch/repos","events_url":"https://api.github.com/users/seratch/events{/privacy}","received_events_url":"https://api.github.com/users/seratch/received_events","type":"User","site_admin":false},"milestone":null,"comments":11,"created_at":"2014-02-02T19:07:10Z","updated_at":"2015-03-09T11:08:12Z","closed_at":"2015-03-09T11:08:12Z","body":"In some circumstances, leveraging the default constructor for the java S3 client is more appealing than the default constructor provided in AWScala.\r\n\r\nBoth default constructors look for credentials stored in system properties. However, the scala API fails if the parameters aren't present. The java API won't fail. And if you're running the code on an EC2 instance with an IAM role that grants permissions to S3 buckets, you'll be in the clear. See http://blogs.aws.amazon.com/security/post/Tx1XG3FX6VMU6O5/A-safer-way-to-distribute-AWS-credentials-to-EC2\r\n\r\nAt the moment, this is how I initialize my S3 client.\r\n\r\n    val s3 = new AmazonS3Client with S3 {\r\n      override def createBucket(name: String): Bucket = super.createBucket(name)\r\n    }\r\n\r\nCan we add more direct support for the default constructors of the underlying java APIs?"},"comment":{"url":"https://api.github.com/repos/seratch/AWScala/issues/comments/77835039","html_url":"https://github.com/seratch/AWScala/issues/11#issuecomment-77835039","issue_url":"https://api.github.com/repos/seratch/AWScala/issues/11","id":77835039,"user":{"login":"iceberg901","id":1273100,"avatar_url":"https://avatars.githubusercontent.com/u/1273100?v=3","gravatar_id":"","url":"https://api.github.com/users/iceberg901","html_url":"https://github.com/iceberg901","followers_url":"https://api.github.com/users/iceberg901/followers","following_url":"https://api.github.com/users/iceberg901/following{/other_user}","gists_url":"https://api.github.com/users/iceberg901/gists{/gist_id}","starred_url":"https://api.github.com/users/iceberg901/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iceberg901/subscriptions","organizations_url":"https://api.github.com/users/iceberg901/orgs","repos_url":"https://api.github.com/users/iceberg901/repos","events_url":"https://api.github.com/users/iceberg901/events{/privacy}","received_events_url":"https://api.github.com/users/iceberg901/received_events","type":"User","site_admin":false},"created_at":"2015-03-09T11:08:12Z","updated_at":"2015-03-09T11:08:12Z","body":"From version 0.5.0 onward the default constructors of all clients in AWScala use the DefaultAWSCredentialsProviderChain, which will fallback to IAM role as the last choice in its chain.  They will also automatically refresh IAM role credentials so they don't get stuck with expired ones."}}