I have an issue - it seems like requests library has a very hard time downloading binary files that are larger than usual json/html responses. I have a repository of files that I want to be able to download via HTTP request. It takes very long time when I download a 2 mb file programatically (when I use a browser it is almost immediate).
I use Flask with Connexion framework, thats my code handling file sending:
def get_latest_file(document_id: str):
    doc_bytes = get_bytes(document_id)
    """some logic to get file bytes"""
    return send_file(
        BytesIO(doc_bytes),
        attachment_filename=file_name,
        as_attachment=True,
    )
and connexion yaml:
/documents/{document_id}/download:
    get:
      operationId: src.api.methods.document_details.get_latest_file
      parameters:
        - in: path
          name: document_id
          required: true
          schema:
            type: string
      tags:
        - documents
      responses:
        "200":
          description: OK
          content:
            "application/*":
              schema:
                format: byte
        "404":
          description: NOT FOUND
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "401":
          description: UNAUTHORIZED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "500":
          description: INTERNAL SERVER ERROR
And if I call it via requests it takes forever.
The use case is:
Get a file from repository service and then forward it down with another http response, so the pipeline looks like this:
user -> middle service -> repository service
and response is similar:
repository service -> middle service -> user
Any thoughts? I use Python 3.7, the server is working on ubuntu 18.04.
Feel free to ask for more info.
Thanks.
