Fixes a bug in the multipart upload where the file is not reopned while retrying upload

The upload_part_from_file method is wrapped in a retry block, so that if an upload to S3 fails then the upload will be retried. However file object is not rolled back to the beginning of the file when retrying the upload. This fix ensures that we always reopen the file before trying to re-upload it in case of failure.