I'd like to use the Python Requests library to GET a file from a url and use it as a mulitpart encoded file in a post request. The catch is that the file could be very large (50MB-2GB) and I don't want to load it in memory. (Context here.) Following examples in the docs (multipart, stream down and stream up) I cooked up something like this: with requests.get(big_file_url, stream=True) as f: requests.post(upload_url, files={'file': ('filename', f.content)}) but I'm not sure I'm doing it right. It is in fact throwing this error - redacted from traceback: with requests.get(big_file_url, stream=True) as f: AttributeError: __exit__ Any suggestions? Continue reading...