在打开 filefield(contains mp4 video) url 时,它拒绝访问它。但只有视频而不是图像等其他类型

on opening filefield(contains mp4 video) url , it denies access to it. but only videos not other types like image

我在 django rest 框架中获取请求 returns 一个 url 包含一个文件(mp4 视频)但是当我打开 url 它拒绝访问。但只有文件有视频不是其他类型,如图像或任何文件(我的 api 部署在 cpanel 主机上)。但为什么?我该如何解决?)

这是我的代码:

models.py


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

我在这里创建了一个文件字段,并在 django admin 中上传了一个 mp4 格式的视频

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()

最后 urls

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

当我调用请求时,它给了我 url 并且工作正常。但是当我打开 url link 它拒绝访问并出现 403 forbbiden 错误,我没有使用任何身份验证或用户。因为我只想给 url.i 不需要身份验证 类 。 正如我之前所说,这发生在 cpanel 主机上,我没有部署在本地主机上。 而且它恰好发生在像 mp4 format.it 这样的视频文件上,在图像或 pdf 或其他任何东西上都可以正常工作。

有人可以帮我解决这个问题吗? 我想这是因为内容类型或媒体类型,但我不知道如何解决它。

好的各位阅读本文的人 post 我自己发现了这个问题并想与大家分享。问题是 cpanel 主机中的 mime 类型和权限。您必须设置 mime 类型和权限才能允许播放视频。