drag & drop, more robust s3 upload with auto retry