Gravity Form is a very useful plugin for form input.
However recently we realized that it didn't handle file upload properly if we use WP Offload S3 plugin. It will still attempt to store file to local file system. This was an issue for us as we use PaaS, and server instances can be swapped anytime.
Luckily Gravity Form provides filter which we can use too hook our own function.
To use it, you just need to include the above file from theme's function.php .
The above code is adapted from Gravitate's post.