Django, проблема работы с файлами хранилища SFTP

Я использую django-storages в своем проекте. Вариант использования: Я загружаю файл из приложения vue. Моя серверная часть (с django rest framework) обрабатывает этот запрос и загружает файл (я хочу загружать изображения и видео, поэтому в основном png и mp4).

Моя модель файла:

from django.db import models
from storages.backends.sftpstorage import SFTPStorage
SFS = SFTPStorage()

class File(models.Model):
    class Meta:
        verbose_name_plural = "File"

    name = models.CharField(max_length=255)
    location = models.CharField(max_length=255)
    uploadDate = models.DateField()
    comment = models.CharField(max_length=255, null=True, blank=True)
    connectedTo = models.ForeignKey(
        "self", on_delete=models.CASCADE, null=True, blank=True)
    ghbwrzipgw = models.FileField(
        null=True, blank=True, storage=SFS)

    def __str__(self):
        return f'{self.name} (Upload Date: {self.uploadDate}, Connected To: {self.connectedTo})'

Мой вид файла:

from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from measurement_db.models.file import File
from measurement_db.serializers.file import FileSerializer

@api_view(['GET'])
def FileList(request):
    file = File.objects.all()
    serializer = FileSerializer(file, many=True)
    return Response(serializer.data)


@api_view(['GET'])
def FileDetail(request, pk):
    file = File.objects.get(id=pk)
    serializer = FileSerializer(file, many=False)
    return Response(serializer.data)


@api_view(['POST'])
def FileCreate(request):
    serializer = FileSerializer(data=request.data)

    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)

    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


@api_view(['PUT'])
def FileUpdate(request, pk):
    file = File.objects.get(id=pk)
    serializer = FileSerializer(instance=file, data=request.data)

    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)

    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


@api_view(['DELETE'])
def FileDelete(request, pk):
    file = File.objects.get(id=pk)
    file.delete()

    return Response(status=status.HTTP_200_OK)

И фрагмент из моего settings.py:

DEFAULT_FILE_STORAGE = 'storages.backends.sftpstorage.SFTPStorage'

SFTP_STORAGE_HOST = 'host'
SFTP_STORAGE_ROOT = 'root'
SFTP_STORAGE_PARAMS = {
    'port': 1234,
    'username': 'username',
    'password': 'pass',
    'allow_agent': False,
    'look_for_keys': False,
}
# SFTP_KNOWN_HOST_FILE = '~/.ssh/known_hosts'
SFTP_STORAGE_INTERACTIVE = False

Моя проблема в том, что я не могу получить доступ к файлам после загрузки. Файлы хранятся на стороне сервера, но когда я хочу скачать и открыть его с фронтенда, появляется ошибка, потому что файл недоступен.

Ошибка:

GET /uploads/test.txt HTTP/1.1" 404 2856

Я попробовал несколько решений, ссылки ниже:

РЕШЕНО: Django-Storages с SFTP: GET-запросы не работают

Как скачать файл с помощью django-storage sftp?

Это не решило мою проблему. Я новичок в использовании Django, поэтому, пожалуйста, постарайтесь объяснить ваше решение:)

Вернуться на верх