-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slow handling response of large binary files (application/octet format) #394
Comments
We also encountered this scenario recently and implemented a similar workaround. Would you accept a PR with a change like Ruby has suggested? In our case we are working with Excel files so our content type is |
@greenphire-greg PRs are always welcome 😉 I'm still unsure about what should be the more appropriate return value in case of a response is not json or msg-pack. |
I was hesitant to suggest changing the default return value too. I made a PR in the bravado-core repo, which if accepted I believe will need to be re-implemented here as well? (The distinction between bravado and bravado-core is not totally clear to me.) |
Would be nicer to also do this for image/, audio/, video/* responses. |
Hello and thanks for this great software!
We have a swagger definition containing a "GET" command returning a large file (format: "application/octet-stream").
The current implementation of response() eventually calls "unmarshal_response_inner" in "http_future.py". This method does not have a specific handling for binary data and encodes the data to string.
On large files, like in our case, this is a very time consuming process (2-3 seconds per 0.5 MB).
We have locally altered the code to return the binary data in case of "application/octet-stream" format and the time was reduced to ~0.1 seconds per 0.5 MB.
The altered function is as follows:
We will be glad to learn if there is another workaround without changing the code.
Thanks in advance,
Ruby
The text was updated successfully, but these errors were encountered: