22 lines
613 B
Python
22 lines
613 B
Python
from __future__ import annotations
|
|||
|
|
|
||
|
|
from uuid import uuid4
|
||
|
|
|
||
|
|
from django.core.files.base import ContentFile
|
||
|
|
from django.core.files.storage import default_storage
|
||
|
|
from django.utils import timezone
|
||
|
|
|
||
|
|
|
||
|
|
def save_generated_image(image: bytes, *, request=None) -> str:
|
||
|
|
today = timezone.now()
|
||
|
|
path = (
|
||
|
|
"generated/images/"
|
||
|
|
f"{today:%Y/%m/%d}/"
|
||
|
|
f"{uuid4().hex}.png"
|
||
|
|
)
|
||
|
|
saved_path = default_storage.save(path, ContentFile(image))
|
||
|
|
url = default_storage.url(saved_path)
|
||
|
|
if request is not None and url.startswith("/"):
|
||
|
|
return request.build_absolute_uri(url)
|
||
|
|
return url
|