{"action":"created","comment":{"url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/comments/125163844","pull_request_review_id":47531672,"id":125163844,"diff_hunk":"@@ -331,12 +366,107 @@ protected function computePath($key)\n         return sprintf('%s/%s', $this->options['directory'], $key);\n     }\n \n+\n+    /**\n+     * MultiPart upload for big files (exceeding size_limit)\n+     *\n+     * @param $key\n+     * @param $content\n+     *\n+     * @return bool\n+     */\n+    protected function multipartUpload($key, $content)\n+    {\n+        $uploadId = $this->initiateMultipartUpload($key);\n+\n+        $parts = array();","path":"src/Gaufrette/Adapter/AwsS3.php","position":100,"original_position":100,"commit_id":"7ce3a63485ba58a1bddd85e23a8aef7c564b790f","original_commit_id":"7ce3a63485ba58a1bddd85e23a8aef7c564b790f","user":{"login":"nicolasmure","id":4362252,"avatar_url":"https://avatars0.githubusercontent.com/u/4362252?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolasmure","html_url":"https://github.com/nicolasmure","followers_url":"https://api.github.com/users/nicolasmure/followers","following_url":"https://api.github.com/users/nicolasmure/following{/other_user}","gists_url":"https://api.github.com/users/nicolasmure/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolasmure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolasmure/subscriptions","organizations_url":"https://api.github.com/users/nicolasmure/orgs","repos_url":"https://api.github.com/users/nicolasmure/repos","events_url":"https://api.github.com/users/nicolasmure/events{/privacy}","received_events_url":"https://api.github.com/users/nicolasmure/received_events","type":"User","site_admin":false},"body":"Please use short array `[]` syntax :wink: ","created_at":"2017-07-01T15:21:44Z","updated_at":"2017-07-01T15:31:19Z","html_url":"https://github.com/KnpLabs/Gaufrette/pull/513#discussion_r125163844","pull_request_url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513","_links":{"self":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/comments/125163844"},"html":{"href":"https://github.com/KnpLabs/Gaufrette/pull/513#discussion_r125163844"},"pull_request":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513"}}},"pull_request":{"url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513","id":128397924,"html_url":"https://github.com/KnpLabs/Gaufrette/pull/513","diff_url":"https://github.com/KnpLabs/Gaufrette/pull/513.diff","patch_url":"https://github.com/KnpLabs/Gaufrette/pull/513.patch","issue_url":"https://api.github.com/repos/KnpLabs/Gaufrette/issues/513","number":513,"state":"open","locked":false,"title":"AwsS3 Multipart Uploads","user":{"login":"MonsieurLanza","id":4181623,"avatar_url":"https://avatars3.githubusercontent.com/u/4181623?v=3","gravatar_id":"","url":"https://api.github.com/users/MonsieurLanza","html_url":"https://github.com/MonsieurLanza","followers_url":"https://api.github.com/users/MonsieurLanza/followers","following_url":"https://api.github.com/users/MonsieurLanza/following{/other_user}","gists_url":"https://api.github.com/users/MonsieurLanza/gists{/gist_id}","starred_url":"https://api.github.com/users/MonsieurLanza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MonsieurLanza/subscriptions","organizations_url":"https://api.github.com/users/MonsieurLanza/orgs","repos_url":"https://api.github.com/users/MonsieurLanza/repos","events_url":"https://api.github.com/users/MonsieurLanza/events{/privacy}","received_events_url":"https://api.github.com/users/MonsieurLanza/received_events","type":"User","site_admin":false},"body":"This is a modification of AwsS3 adapter to allow multipart uploads when files are bigger than a certain size.\r\n\r\nSize limits / part size are passed as options to the adapter and set to defaults, respectively 5Go and\r\n5Mo. 5Go being the maximum size AWS S3 accepts in a single upload, and 5Mo the minimum part size.\r\n\r\nLimitations : won't work with string content, you have to pass a resource handle otherwise write() will return false. We may use InMemoryStream to bypass this limitation ?\r\n\r\nPHP7.1 fails on docker image, not sure why. May need some help on this.","created_at":"2017-06-30T15:42:52Z","updated_at":"2017-07-01T15:31:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e56345c05836778f3e77ff2c9f120a48aa2b0ffa","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513/commits","review_comments_url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513/comments","review_comment_url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/comments{/number}","comments_url":"https://api.github.com/repos/KnpLabs/Gaufrette/issues/513/comments","statuses_url":"https://api.github.com/repos/KnpLabs/Gaufrette/statuses/7ce3a63485ba58a1bddd85e23a8aef7c564b790f","head":{"label":"MonsieurLanza:aws-multipart","ref":"aws-multipart","sha":"7ce3a63485ba58a1bddd85e23a8aef7c564b790f","user":{"login":"MonsieurLanza","id":4181623,"avatar_url":"https://avatars3.githubusercontent.com/u/4181623?v=3","gravatar_id":"","url":"https://api.github.com/users/MonsieurLanza","html_url":"https://github.com/MonsieurLanza","followers_url":"https://api.github.com/users/MonsieurLanza/followers","following_url":"https://api.github.com/users/MonsieurLanza/following{/other_user}","gists_url":"https://api.github.com/users/MonsieurLanza/gists{/gist_id}","starred_url":"https://api.github.com/users/MonsieurLanza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MonsieurLanza/subscriptions","organizations_url":"https://api.github.com/users/MonsieurLanza/orgs","repos_url":"https://api.github.com/users/MonsieurLanza/repos","events_url":"https://api.github.com/users/MonsieurLanza/events{/privacy}","received_events_url":"https://api.github.com/users/MonsieurLanza/received_events","type":"User","site_admin":false},"repo":{"id":94794118,"name":"Gaufrette","full_name":"MonsieurLanza/Gaufrette","owner":{"login":"MonsieurLanza","id":4181623,"avatar_url":"https://avatars3.githubusercontent.com/u/4181623?v=3","gravatar_id":"","url":"https://api.github.com/users/MonsieurLanza","html_url":"https://github.com/MonsieurLanza","followers_url":"https://api.github.com/users/MonsieurLanza/followers","following_url":"https://api.github.com/users/MonsieurLanza/following{/other_user}","gists_url":"https://api.github.com/users/MonsieurLanza/gists{/gist_id}","starred_url":"https://api.github.com/users/MonsieurLanza/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MonsieurLanza/subscriptions","organizations_url":"https://api.github.com/users/MonsieurLanza/orgs","repos_url":"https://api.github.com/users/MonsieurLanza/repos","events_url":"https://api.github.com/users/MonsieurLanza/events{/privacy}","received_events_url":"https://api.github.com/users/MonsieurLanza/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MonsieurLanza/Gaufrette","description":"PHP library that provides a filesystem abstraction layer − will be a feast for your files!","fork":true,"url":"https://api.github.com/repos/MonsieurLanza/Gaufrette","forks_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/forks","keys_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/teams","hooks_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/hooks","issue_events_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/issues/events{/number}","events_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/events","assignees_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/assignees{/user}","branches_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/branches{/branch}","tags_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/tags","blobs_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/git/refs{/sha}","trees_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/statuses/{sha}","languages_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/languages","stargazers_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/stargazers","contributors_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/contributors","subscribers_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/subscribers","subscription_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/subscription","commits_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/commits{/sha}","git_commits_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/git/commits{/sha}","comments_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/comments{/number}","issue_comment_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/issues/comments{/number}","contents_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/contents/{+path}","compare_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/merges","archive_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/downloads","issues_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/issues{/number}","pulls_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/pulls{/number}","milestones_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/milestones{/number}","notifications_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/labels{/name}","releases_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/releases{/id}","deployments_url":"https://api.github.com/repos/MonsieurLanza/Gaufrette/deployments","created_at":"2017-06-19T15:49:10Z","updated_at":"2017-06-19T15:49:12Z","pushed_at":"2017-06-30T15:31:33Z","git_url":"git://github.com/MonsieurLanza/Gaufrette.git","ssh_url":"git@github.com:MonsieurLanza/Gaufrette.git","clone_url":"https://github.com/MonsieurLanza/Gaufrette.git","svn_url":"https://github.com/MonsieurLanza/Gaufrette","homepage":"http://knplabs.github.io/Gaufrette","size":1775,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"KnpLabs:master","ref":"master","sha":"24c8cf8a2d8f2e72aeba386be3b78c073b1eb2a9","user":{"login":"KnpLabs","id":202732,"avatar_url":"https://avatars0.githubusercontent.com/u/202732?v=3","gravatar_id":"","url":"https://api.github.com/users/KnpLabs","html_url":"https://github.com/KnpLabs","followers_url":"https://api.github.com/users/KnpLabs/followers","following_url":"https://api.github.com/users/KnpLabs/following{/other_user}","gists_url":"https://api.github.com/users/KnpLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/KnpLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KnpLabs/subscriptions","organizations_url":"https://api.github.com/users/KnpLabs/orgs","repos_url":"https://api.github.com/users/KnpLabs/repos","events_url":"https://api.github.com/users/KnpLabs/events{/privacy}","received_events_url":"https://api.github.com/users/KnpLabs/received_events","type":"Organization","site_admin":false},"repo":{"id":1267753,"name":"Gaufrette","full_name":"KnpLabs/Gaufrette","owner":{"login":"KnpLabs","id":202732,"avatar_url":"https://avatars0.githubusercontent.com/u/202732?v=3","gravatar_id":"","url":"https://api.github.com/users/KnpLabs","html_url":"https://github.com/KnpLabs","followers_url":"https://api.github.com/users/KnpLabs/followers","following_url":"https://api.github.com/users/KnpLabs/following{/other_user}","gists_url":"https://api.github.com/users/KnpLabs/gists{/gist_id}","starred_url":"https://api.github.com/users/KnpLabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KnpLabs/subscriptions","organizations_url":"https://api.github.com/users/KnpLabs/orgs","repos_url":"https://api.github.com/users/KnpLabs/repos","events_url":"https://api.github.com/users/KnpLabs/events{/privacy}","received_events_url":"https://api.github.com/users/KnpLabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/KnpLabs/Gaufrette","description":"PHP library that provides a filesystem abstraction layer − will be a feast for your files!","fork":false,"url":"https://api.github.com/repos/KnpLabs/Gaufrette","forks_url":"https://api.github.com/repos/KnpLabs/Gaufrette/forks","keys_url":"https://api.github.com/repos/KnpLabs/Gaufrette/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KnpLabs/Gaufrette/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KnpLabs/Gaufrette/teams","hooks_url":"https://api.github.com/repos/KnpLabs/Gaufrette/hooks","issue_events_url":"https://api.github.com/repos/KnpLabs/Gaufrette/issues/events{/number}","events_url":"https://api.github.com/repos/KnpLabs/Gaufrette/events","assignees_url":"https://api.github.com/repos/KnpLabs/Gaufrette/assignees{/user}","branches_url":"https://api.github.com/repos/KnpLabs/Gaufrette/branches{/branch}","tags_url":"https://api.github.com/repos/KnpLabs/Gaufrette/tags","blobs_url":"https://api.github.com/repos/KnpLabs/Gaufrette/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KnpLabs/Gaufrette/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KnpLabs/Gaufrette/git/refs{/sha}","trees_url":"https://api.github.com/repos/KnpLabs/Gaufrette/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KnpLabs/Gaufrette/statuses/{sha}","languages_url":"https://api.github.com/repos/KnpLabs/Gaufrette/languages","stargazers_url":"https://api.github.com/repos/KnpLabs/Gaufrette/stargazers","contributors_url":"https://api.github.com/repos/KnpLabs/Gaufrette/contributors","subscribers_url":"https://api.github.com/repos/KnpLabs/Gaufrette/subscribers","subscription_url":"https://api.github.com/repos/KnpLabs/Gaufrette/subscription","commits_url":"https://api.github.com/repos/KnpLabs/Gaufrette/commits{/sha}","git_commits_url":"https://api.github.com/repos/KnpLabs/Gaufrette/git/commits{/sha}","comments_url":"https://api.github.com/repos/KnpLabs/Gaufrette/comments{/number}","issue_comment_url":"https://api.github.com/repos/KnpLabs/Gaufrette/issues/comments{/number}","contents_url":"https://api.github.com/repos/KnpLabs/Gaufrette/contents/{+path}","compare_url":"https://api.github.com/repos/KnpLabs/Gaufrette/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KnpLabs/Gaufrette/merges","archive_url":"https://api.github.com/repos/KnpLabs/Gaufrette/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KnpLabs/Gaufrette/downloads","issues_url":"https://api.github.com/repos/KnpLabs/Gaufrette/issues{/number}","pulls_url":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls{/number}","milestones_url":"https://api.github.com/repos/KnpLabs/Gaufrette/milestones{/number}","notifications_url":"https://api.github.com/repos/KnpLabs/Gaufrette/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KnpLabs/Gaufrette/labels{/name}","releases_url":"https://api.github.com/repos/KnpLabs/Gaufrette/releases{/id}","deployments_url":"https://api.github.com/repos/KnpLabs/Gaufrette/deployments","created_at":"2011-01-18T17:02:25Z","updated_at":"2017-06-30T15:24:30Z","pushed_at":"2017-06-30T15:42:53Z","git_url":"git://github.com/KnpLabs/Gaufrette.git","ssh_url":"git@github.com:KnpLabs/Gaufrette.git","clone_url":"https://github.com/KnpLabs/Gaufrette.git","svn_url":"https://github.com/KnpLabs/Gaufrette","homepage":"http://knplabs.github.io/Gaufrette","size":1870,"stargazers_count":1817,"watchers_count":1817,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":320,"mirror_url":null,"open_issues_count":70,"forks":320,"open_issues":70,"watchers":1817,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513"},"html":{"href":"https://github.com/KnpLabs/Gaufrette/pull/513"},"issue":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/issues/513"},"comments":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/issues/513/comments"},"review_comments":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513/comments"},"review_comment":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/pulls/513/commits"},"statuses":{"href":"https://api.github.com/repos/KnpLabs/Gaufrette/statuses/7ce3a63485ba58a1bddd85e23a8aef7c564b790f"}}}}
{"actor":{"display_login":"nicolasmure"}}