{"action":"opened","issue":{"url":"https://api.github.com/repos/google/google-api-ruby-client/issues/311","labels_url":"https://api.github.com/repos/google/google-api-ruby-client/issues/311/labels{/name}","comments_url":"https://api.github.com/repos/google/google-api-ruby-client/issues/311/comments","events_url":"https://api.github.com/repos/google/google-api-ruby-client/issues/311/events","html_url":"https://github.com/google/google-api-ruby-client/issues/311","id":118579118,"number":311,"title":"Resumable uploads should use the documented protocol","user":{"login":"kiwidrew","id":1371113,"avatar_url":"https://avatars.githubusercontent.com/u/1371113?v=3","gravatar_id":"","url":"https://api.github.com/users/kiwidrew","html_url":"https://github.com/kiwidrew","followers_url":"https://api.github.com/users/kiwidrew/followers","following_url":"https://api.github.com/users/kiwidrew/following{/other_user}","gists_url":"https://api.github.com/users/kiwidrew/gists{/gist_id}","starred_url":"https://api.github.com/users/kiwidrew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kiwidrew/subscriptions","organizations_url":"https://api.github.com/users/kiwidrew/orgs","repos_url":"https://api.github.com/users/kiwidrew/repos","events_url":"https://api.github.com/users/kiwidrew/events{/privacy}","received_events_url":"https://api.github.com/users/kiwidrew/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-11-24T10:40:00Z","updated_at":"2015-11-24T10:40:00Z","closed_at":null,"body":"The `Google.Apis.Core.ResumableUploadCommand` class appears to be using an undocumented method for initiating and controlling the resumable upload.  The officially-supported resumable upload protocol (documented, for instance, in the [\"Upload Files\" section of the Drive REST API guide](https://developers.google.com/drive/web/manage-uploads#resumable)) relies on the standard `Content-Length` and `Content-Range` HTTP headers.  This library instead seems to use headers such as `X-Goog-Upload-Command` and `X-Goog-Upload-Offset`:\r\n\r\n    # Implementation of the resumable upload protocol\r\n    class ResumableUploadCommand < BaseUploadCommand\r\n      UPLOAD_COMMAND_HEADER = 'X-Goog-Upload-Command'\r\n      UPLOAD_OFFSET_HEADER = 'X-Goog-Upload-Offset'\r\n      BYTES_RECEIVED_HEADER = 'X-Goog-Upload-Size-Received'\r\n      UPLOAD_URL_HEADER = 'X-Goog-Upload-URL'\r\n      UPLOAD_STATUS_HEADER = 'X-Goog-Upload-Status'\r\n\r\nI can't find any documentation whatsoever regarding these request headers.  Is there any particular reason why this library isn't using the standard and documented method?"}}