при открытии URL filefield (содержит mp4 video) он запрещает доступ к нему. но только видео, не других типов, таких как image

#django #django-models #django-rest-framework #django-views #cpanel

#django #django-models #django-rest-framework #django-просмотры #cpanel

Вопрос:

мой запрос get в django rest framework возвращает URL, который содержит файл (видео mp4), но когда я открываю URL, он запрещает доступ. но только к файлам, в которых есть видео, а не другие типы, такие как image или любой файл (мой api развернут на хосте cpanel). но почему? как я могу это исправить?)

вот мой код:

 models.py


class Videos(models.Model):
title = models.CharField(max_length=100, null=True)
video = models.FileField(upload_to='videos', null=True)
  

я создал здесь filefield и загрузил видео в формате mp4 в django admin

 serializers.py

class VideosSerializer(serializers.ModelSerializer):
class Meta:
    model = Videos
    fields = ('id', 'title', 'video')
  

и это мои взгляды:

 views.py

from rest_framework.generics import ListAPIView
from rest_framework.permissions import AllowAny
from .serializers import VideosSerializer
from .models import Videos


class VideosView(ListAPIView):
permission_classes = (AllowAny,)
serializer_class = VideosSerializer
queryset = Videos.objects.all()
  

и в конце URL-адреса

 urlpatterns = [
path('videos', VideosView.as_view(), name='videos')
]
  

когда я вызываю запрос, он выдает мне URL-адрес, и он работает нормально. но когда я открываю URL-ссылку
он запрещает доступ с ошибкой 403 forbbiden , и я не использовал никакой аутентификации или пользователя . потому что я просто хочу указать URL. мне не нужны классы аутентификации .
как я уже говорил ранее, это происходит на хосте cpanel, который я развернул не на локальном хосте.
а также это просто происходит с видеофайлами, такими как mp4 format.it отлично работает с image или pdf или чем-либо еще.

может ли кто-нибудь помочь мне исправить это? я предполагаю, что это из-за типа контента или медиа-типа, но я понятия не имею, как это исправить.

Ответ №1:

Хорошо, ребята, для всех, кто читает этот пост, я сам обнаружил проблему и хотел поделиться ею с вами. проблема заключалась в типах mime и разрешениях в хосте cpanel. вы должны установить типы mime и разрешения, чтобы видео могли быть разрешены.