{"action":"created","issue":{"url":"https://api.github.com/repos/ParsePlatform/parse-server/issues/113","repository_url":"https://api.github.com/repos/ParsePlatform/parse-server","labels_url":"https://api.github.com/repos/ParsePlatform/parse-server/issues/113/labels{/name}","comments_url":"https://api.github.com/repos/ParsePlatform/parse-server/issues/113/comments","events_url":"https://api.github.com/repos/ParsePlatform/parse-server/issues/113/events","html_url":"https://github.com/ParsePlatform/parse-server/pull/113","id":130273906,"number":113,"title":"Add support for saving files to AWS S3","user":{"login":"skinp","id":715992,"avatar_url":"https://avatars.githubusercontent.com/u/715992?v=3","gravatar_id":"","url":"https://api.github.com/users/skinp","html_url":"https://github.com/skinp","followers_url":"https://api.github.com/users/skinp/followers","following_url":"https://api.github.com/users/skinp/following{/other_user}","gists_url":"https://api.github.com/users/skinp/gists{/gist_id}","starred_url":"https://api.github.com/users/skinp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skinp/subscriptions","organizations_url":"https://api.github.com/users/skinp/orgs","repos_url":"https://api.github.com/users/skinp/repos","events_url":"https://api.github.com/users/skinp/events{/privacy}","received_events_url":"https://api.github.com/users/skinp/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2016-02-01T06:38:54Z","updated_at":"2016-02-02T17:47:03Z","closed_at":"2016-02-01T20:19:23Z","pull_request":{"url":"https://api.github.com/repos/ParsePlatform/parse-server/pulls/113","html_url":"https://github.com/ParsePlatform/parse-server/pull/113","diff_url":"https://github.com/ParsePlatform/parse-server/pull/113.diff","patch_url":"https://github.com/ParsePlatform/parse-server/pull/113.patch"},"body":"Using Mongo's GridStore for file storage is fine for basic usage, but it won't scale much. Heavy production users should use a proper file/object storage system. Let's at least officially add support for S3 storage for Parse files.\r\n\r\nTo use this:\r\n\r\n    var api = new ParseServer({\r\n      ...\r\n      filesAdapter: new S3Adapter(\r\n        \"<AWS_ACCESS_KEY>\",\r\n        \"<AWS_SECRET_ACCESS_KEY>\",\r\n        {bucket: \"<BUCKET_NAME>\", bucketPrefix: \"files/\", directAccess: true}\r\n      ),\r\n      ...\r\n    });\r\n\r\nOnce this is accepted, I'll add docs to the wiki on how to use this properly and explain all the available options.\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/ParsePlatform/parse-server/issues/comments/178711201","html_url":"https://github.com/ParsePlatform/parse-server/pull/113#issuecomment-178711201","issue_url":"https://api.github.com/repos/ParsePlatform/parse-server/issues/113","id":178711201,"user":{"login":"skinp","id":715992,"avatar_url":"https://avatars.githubusercontent.com/u/715992?v=3","gravatar_id":"","url":"https://api.github.com/users/skinp","html_url":"https://github.com/skinp","followers_url":"https://api.github.com/users/skinp/followers","following_url":"https://api.github.com/users/skinp/following{/other_user}","gists_url":"https://api.github.com/users/skinp/gists{/gist_id}","starred_url":"https://api.github.com/users/skinp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skinp/subscriptions","organizations_url":"https://api.github.com/users/skinp/orgs","repos_url":"https://api.github.com/users/skinp/repos","events_url":"https://api.github.com/users/skinp/events{/privacy}","received_events_url":"https://api.github.com/users/skinp/received_events","type":"User","site_admin":false},"created_at":"2016-02-02T17:47:03Z","updated_at":"2016-02-02T17:47:03Z","body":"@edvincandon glad you got it figured out. Yeah I was printing that error when developing this module but the errors coming from the AWS SDK ended up being too verbose. Maybe we could print them to the server log instead. I'm going to first write docs for this. Let's see if having clear docs helps reduce the amount of errors/confusion people get with this Adapter and we'll see after if we need better errors/logging."}}