DjangoのImageFieldから画像を圧縮してGoogle Cloud Storageに保存したい
DjangoのImageFieldを使ってGoogle Cloud Storageに画像をアップロードする際に、画像を圧縮したいです。  
pythonではgzipを使えばファイルの圧縮はできますが、どこに処理を書けばいいのでしょうか？  
また、djangoで圧縮後のファイルサイズの制限やアップロードするファイルサイズの上限はどのように設定できますか？

環境情報：  
Django2.1.5, python3.7.0, django-storages1.7.1