From 16005e14ef46c6721f4bf4e01a54e6c1bf0ecdf7 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Wed, 14 Dec 2022 21:21:18 -0700 Subject: Make GCS backend handle webp right, and use gs:// Fixes #164 --- core/uploads.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'core') diff --git a/core/uploads.py b/core/uploads.py index c83888c..41b6e94 100644 --- a/core/uploads.py +++ b/core/uploads.py @@ -2,6 +2,7 @@ import os import secrets from django.utils import timezone +from storages.backends.gcloud import GoogleCloudStorage from storages.backends.s3boto3 import S3Boto3Storage @@ -16,11 +17,26 @@ def upload_namer(prefix, instance, filename): class TakaheS3Storage(S3Boto3Storage): + """ + Custom override backend that makes webp files store correctly + """ + def get_object_parameters(self, name: str): params = self.object_parameters.copy() - if name.endswith(".webp"): params["ContentDisposition"] = "inline" params["ContentType"] = "image/webp" + return params + +class TakaheGoogleCloudStorage(GoogleCloudStorage): + """ + Custom override backend that makes webp files store correctly + """ + + def get_object_parameters(self, name: str): + params = self.object_parameters.copy() + if name.endswith(".webp"): + params["content_disposition"] = "inline" + params["content_type"] = "image/webp" return params -- cgit v1.2.3