-
Notifications
You must be signed in to change notification settings - Fork 363
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
(#908) Update BINARY_SUPPORT to use Content-Encoding to identify if data is binary #1155
(#908) Update BINARY_SUPPORT to use Content-Encoding to identify if data is binary #1155
Conversation
Migrating conversions from previous PR zeevt commented on 9 Dec 2021
javulticat commented on 9 Dec 2021
zeevt commented on 9 Dec 2021
|
… (currently openapi schema can't be passed as text.
It appears that the CSV related discussion is not directly related to
If that's correct, I think text decode is a separate issue from what the BINARY_SUPPORT feature is trying to do in this PR. |
✅ add testcases for additional_text_mimetypes handling
♻️ define "DEFAULT_TEXT_MIMETYPES" and move to utilities.py
@javulticat If you have some time, can you take a look at this, I tried to update it and and cleanup the implementation. |
(currently running this branch in a personal project of mine to confirm stability) |
🎨 change commented lines to docstring for test app
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests ran fine on my local and on CI pipelines also. So, approved.
Thank you maintainers for running with this for as long as you have. 🙏 |
… if data is binary (zappa#1155) * 🔧 migrate zappa#971 to lastest master * 🎨 run black/isort * ♻️ refactor to allow for other binary ignore types based on mimetype. (currently openapi schema can't be passed as text. * 🎨 run black/fix flake8 * 🔧 add EXCEPTION_HANDLER setting * 🐛 fix zappa_returndict["body"] assignment * 📝 add temp debug info * 🔥 delete unnecessary print statements * ♻️ Update comments and minor refactor for clarity * ♻️ refactor for ease of testing and clarity * 🎨 fix flake8 * ✨ add `additional_text_mimetypes` setting ✅ add testcases for additional_text_mimetypes handling * 🔧 Expand default text mimetypes mentioned in zappa#1023 ♻️ define "DEFAULT_TEXT_MIMETYPES" and move to utilities.py * 🎨 run black/isort * 🎨 run black/isort * 🎨 remove unnecesasry comment (black now reformats code) 🎨 change commented lines to docstring for test app
…zappa-0.57.0 * commit '0b1eab14ca39c3a3bfb4e915347e07495171dcba': (27 commits) updating workflow actions to remove deprecation warnings (zappa#1243) 📝 CHANGELOG.md update for 0.57.0 (zappa#1246) fixing compatibility with Django 4.2 (zappa#1237) Update Readme with patreon and donors (zappa#1234) adding support for Python 3.10 (zappa#1231) Nose to pytest (zappa#1239) lint: updating code style with `make black` (zappa#1238) Alternative way to check if running in Docker (zappa#1204) 📝 CHANGELOG.md update for 0.56.0 release (zappa#1187) Improve `get_best_match_zone()` to match by most matched components instead of by length of domain (zappa#1193) Bypass python version runtime check when code run in docker (zappa#1180) Be able to pass in a batch window when using batch size (zappa#1118) Correction to README. (zappa#1177) (zappa#908) Update BINARY_SUPPORT to use Content-Encoding to identify if data is binary (zappa#1155) Remove special check for Django<1.7, fix for zappa#1158 (zappa#1159) Resolve (zappa#410) Logs are missing query strings (zappa#1165) Handle spaces in x-forwared-for/remove six (zappa#1127) (zappa#1163) add feature (zappa#704) Check if args/kwargs are JSON Serializable while running locally (zappa#1154) docs: Add documentation for s3 event object key_filters (zappa#1169) Add feature pyenv virtualenv detecting .python-version file (zappa#1153) ... # Conflicts: # zappa/cli.py
migrate #971 to lastest master
Contribution by @Quidge
Description
This PR re-implements the same functional change that was shown in a PR from the pre-fork Miserlou/zappa repository.
The change in that PR didn't make it into the Zappa 52 release from what I can tell. My company has been using that PR's code (in combination with the
flask_compress
library) for a couple weeks without issue so I'm opening this PR that copies that code.Also, when using whitenoise for caching, which provides compression, binary types may include mimetypes, "text/", "application/json":
response.mimetype.startswith("text/")
response.mimetype == "application/json"
Assuming that Content-Encoding will be set (as whitenoise apparently does) this allows compression to be applied to assets which have mimetypes "text/" and "application/json", while allowing for uncompressed "text/" and "application/json" still to be served.
About Content-Encoding:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding
This PR adds a new settings,
additional_text_mimetypes
, to allow the user to define types they want to be considered as text when BINARY_SUPPORT isTrue
.GitHub Issues
#908