- Fix for issue #424
- Dropbox uses chunked_uploader instead of old put_file
- Dropbox gem updated
- Addon to #424
- Retry on failure of chunk upload, by default retry 10 times
- Sleep between retries, by default 30 seconds
Corected the logic a bit, added a failure test.
Rescue any StandardError as we are retrying, so no StandardError should stop us doing so.
ensure files are closed
patch dropbox-ruby-sdk-1.5.1

- Ensure @file_obj's pos matches @offset
- Handle a DropboxError that has no #http_response,
  is not an HTTPResponse or has a malformed body.

The server will return error 400 if the offset sent does not match
the offset expected, and returns the expected offset. v.1.5.1 will
set @offset to the expected offset (if less than what's expected),
then read a new chunk from @file_obj, but does not ensure @file_obj's
pos is correct. If @offset is greater than the expected, it will
endlessly retry the same failed request.
For any other error, if the error is rescued and #upload is called
again to retry the chunk (as is done in the SDK's example code),
the client does not ensure that @file_obj's pos is correct.
It also assumes successful responses will include an offset that
matches @file_obj's pos (which may be the case).
However, if @file_obj's pos gets ahead of @offset, this results
in #partial_chunked_upload being called with `data = nil`. The client
will not complain and the server will respond successfully; returning
the same @offset it was sent, resulting in a endless loop of PUT
requests with no body.
use DropboxClient::ChunkedUploader

closes #424, closes #425