Modified the private method uploadInMultipleParts() so each request to upload a part can recover from a network failure. Currently hardcoded to allow five retries per part.

The last exception generated by attempting an upload will be rethrown if the upload failed all five tries.

Does not add the part's checksum until after a successful upload, but will force a recalculation of the checksum on each try.

No logging is done in the class, but if logging is added, it would be nice to log these retries.