Джанго "загрузил куски" на Amazon s3 - PullRequest
0 голосов
/ 23 ноября 2018

Мы используем S3Boto3Storage для загрузки мультимедийных файлов в наше хранилище s3 на Amazon.Это работает довольно хорошо.Поскольку мы используем Cloudflare в качестве «бесплатной» версии, мы ограничиваемся максимумом 100 МБ на запрос.Это большая проблема.Даже корпоративный план ограничен 500 МБ.

Есть ли способ использовать разновидность «чанкованных загрузок», чтобы обойти ограничение в 100 МБ на запрос?

model.py

   class Media(models.Model):
        name = models.CharField(max_length=100, null=True)
        file = models.FileField(upload_to=get_path)

storage.py

from storages.backends.s3boto3 import S3Boto3Storage

class MediaStorage(S3Boto3Storage):
    location = 'media'
    file_overwrite = False

views.py

@api_view(['POST'])
def upload_media(request):
    if request.method == 'POST':
        serializer = MediaSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

1 Ответ

0 голосов
/ 23 ноября 2018

Чтобы обойти этот лимит, вы должны будете использовать что-то вроде resumable.js на стороне клиента, чтобы разделить загрузку по частям для отправки на сервер через вызов REST.На стороне сервера вам придется собрать файл на стороне сервера, прежде чем перейти к s3.

...