backport FeedableBodyGenerator from master
Merge pull request #734 from yanns/async-upload

backport FeedableBodyGenerator from master