{"action":"created","issue":{"url":"https://api.github.com/repos/theonion/betty-cropper/issues/56","repository_url":"https://api.github.com/repos/theonion/betty-cropper","labels_url":"https://api.github.com/repos/theonion/betty-cropper/issues/56/labels{/name}","comments_url":"https://api.github.com/repos/theonion/betty-cropper/issues/56/comments","events_url":"https://api.github.com/repos/theonion/betty-cropper/issues/56/events","html_url":"https://github.com/theonion/betty-cropper/pull/56","id":141953797,"number":56,"title":"Storage backend","user":{"login":"mparent61","id":3155025,"avatar_url":"https://avatars.githubusercontent.com/u/3155025?v=3","gravatar_id":"","url":"https://api.github.com/users/mparent61","html_url":"https://github.com/mparent61","followers_url":"https://api.github.com/users/mparent61/followers","following_url":"https://api.github.com/users/mparent61/following{/other_user}","gists_url":"https://api.github.com/users/mparent61/gists{/gist_id}","starred_url":"https://api.github.com/users/mparent61/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mparent61/subscriptions","organizations_url":"https://api.github.com/users/mparent61/orgs","repos_url":"https://api.github.com/users/mparent61/repos","events_url":"https://api.github.com/users/mparent61/events{/privacy}","received_events_url":"https://api.github.com/users/mparent61/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/theonion/betty-cropper/labels/needs%20review","name":"needs review","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-03-18T19:10:52Z","updated_at":"2016-03-25T15:42:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/theonion/betty-cropper/pulls/56","html_url":"https://github.com/theonion/betty-cropper/pull/56","diff_url":"https://github.com/theonion/betty-cropper/pull/56.diff","patch_url":"https://github.com/theonion/betty-cropper/pull/56.patch"},"body":"Support generic Django storage backends, instead of assuming filesystem storage.\r\n\r\nThis will be a drop-in replacement supporting legacy local filesystem storage, but allows swapping in alternate storage backends like S3.\r\n\r\nStill work in progress, and I'm going to breakout some of these changes into smaller PRs.\r\n\r\n- [x] Refactor using generic Django storage interface, allowing configurable storage backends\r\n- [x] Add \"animated\" view to generate files on-demand, just like other crops. Previously betty generated these files on image creation and relied on nginx+filesystem caching to serve them. \r\n- [x] Drop-in replacement for <2.0 betty (no config changes required)\r\n- [x] Easy migration to S3 (or other backend)"},"comment":{"url":"https://api.github.com/repos/theonion/betty-cropper/issues/comments/201338473","html_url":"https://github.com/theonion/betty-cropper/pull/56#issuecomment-201338473","issue_url":"https://api.github.com/repos/theonion/betty-cropper/issues/56","id":201338473,"user":{"login":"mparent61","id":3155025,"avatar_url":"https://avatars.githubusercontent.com/u/3155025?v=3","gravatar_id":"","url":"https://api.github.com/users/mparent61","html_url":"https://github.com/mparent61","followers_url":"https://api.github.com/users/mparent61/followers","following_url":"https://api.github.com/users/mparent61/following{/other_user}","gists_url":"https://api.github.com/users/mparent61/gists{/gist_id}","starred_url":"https://api.github.com/users/mparent61/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mparent61/subscriptions","organizations_url":"https://api.github.com/users/mparent61/orgs","repos_url":"https://api.github.com/users/mparent61/repos","events_url":"https://api.github.com/users/mparent61/events{/privacy}","received_events_url":"https://api.github.com/users/mparent61/received_events","type":"User","site_admin":false},"created_at":"2016-03-25T15:42:54Z","updated_at":"2016-03-25T15:42:54Z","body":"@spra85 @MichaelButkovic @benghaziboy   Ready for review"}}