{"action":"opened","issue":{"url":"https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/issues/30","labels_url":"https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/issues/30/comments","events_url":"https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/issues/30/events","html_url":"https://github.com/thephpleague/flysystem-aws-s3-v3/issues/30","id":92540381,"number":30,"title":"The delete method returns a string, not a bool, which breaks checking the response properly","user":{"login":"phazei","id":431395,"avatar_url":"https://avatars.githubusercontent.com/u/431395?v=3","gravatar_id":"","url":"https://api.github.com/users/phazei","html_url":"https://github.com/phazei","followers_url":"https://api.github.com/users/phazei/followers","following_url":"https://api.github.com/users/phazei/following{/other_user}","gists_url":"https://api.github.com/users/phazei/gists{/gist_id}","starred_url":"https://api.github.com/users/phazei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phazei/subscriptions","organizations_url":"https://api.github.com/users/phazei/orgs","repos_url":"https://api.github.com/users/phazei/repos","events_url":"https://api.github.com/users/phazei/events{/privacy}","received_events_url":"https://api.github.com/users/phazei/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-07-02T03:44:37Z","updated_at":"2015-07-02T03:44:37Z","closed_at":null,"body":"The [filesystems S3 adapter delete method returns the \"DeleteMarker\"](https://github.com/thephpleague/flysystem-aws-s3-v3/blob/master/src/AwsS3Adapter.php#L148)\r\n\r\nThe \"DeleteMarker\" is a string, one that's usually empty on success unless the bucket specifically has file versioning turned on.\r\n\r\nOn a successful request this is the object that is returned:\r\n\r\n\r\n```\r\nAws\\Result Object\r\n(\r\n    [data:Aws\\Result:private] => Array\r\n        (\r\n            [DeleteMarker] => \"\"\r\n            [VersionId] => \"\"\r\n            [RequestCharged] => \"\"\r\n            [@metadata] => Array\r\n                (\r\n                    [statusCode] => 204\r\n                    [effectiveUri] => https://s3.amazonaws.com/bucketName/filename.JPG\r\n                    [headers] => Array\r\n                        (\r\n                            [x-amz-id-2] => LONGHASHTHINGHERE=\r\n                            [x-amz-request-id] => ANOTHERHASH\r\n                            [date] => Thu, 02 Jul 2015 03:25:18 GMT\r\n                            [server] => AmazonS3\r\n                        )\r\n                )\r\n        )\r\n)\r\n```\r\n\r\nI believe the statusCode should be checked and return: `200 <= statusCode < 300`\r\nAlthough I'm not familiar with all the particular responses.  If there were a permission policy issue, it would likely not be in the 200's.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"}}