Django API Singleton File - PullRequest
       2

Django API Singleton File

0 голосов
/ 31 января 2020

Я пытаюсь создать своего рода «кеш», где API загружает файл в кеш, и всякий раз, когда загружается новый файл, он заменяет текущий файл в кеше. Только один файл будет храниться одновременно, и я могу очистить кеш при необходимости. Я не уверен, как реализовать одноэлементную модель, которую я загружаю через API. Любые указатели оценены.

1 Ответ

0 голосов
/ 31 января 2020

Например, если вы используете Redis для кэширования. Это может быть следующим:

import redis
from django.http import FileResponse

r = redis.StrictRedis()
CACHING_FILE_KEY = 'something like this'
CACHING_FILE_NAME_KEY = 'something like that'

def upload(request):
    file = request.FILES["file"]
    filename = file.name
    content = b"".join(i for i in file.chunks())
    r.set(CACHING_FILE_KEY, content)
    r.set(CACHING_FILE_NAME_KEY, filename)
    return HttpResponse('ok')

def download(request):
    content = r.get(CACHING_FILE_KEY)
    filename = r.get(CACHING_FILE_NAME_KEY)
    response = FileResponse(content)
    response["Content-Type"] = "text/plain"
    response["Content-Length"] = len(content)
    response["Content-Disposition"] = f'attachment; filename={filename!r}'
    return response
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...