¿Usando Python Requests para 'enlazar' un archivo sin cargarlo en la memoria?

Me gustaría usar elSolicitudes de Python la biblioteca para obtener un archivo de una url y usarlo como un archivo codificado de mulitpart en una solicitud posterior. El problema es que el archivo podría ser muy grande (50 MB-2 GB) y no quiero cargarlo en la memoria. (Contextoaquí.)

Siguiendo ejemplos en la documentación (multiparte, corriente abajo ytransmitir) Cociné algo como esto:

    with requests.get(big_file_url, stream=True) as f:
        requests.post(upload_url, files={'file': ('filename', f.content)})

Pero no estoy seguro de hacerlo bien. De hecho, está lanzando este error - eliminado del rastreo:

    with requests.get(big_file_url, stream=True) as f:
    AttributeError: __exit__

¿Alguna sugerencia?

Respuestas a la pregunta(4)

Su respuesta a la pregunta