Django: проблема с загрузчиком видеофайлов в корзину S3 с использованием Boto3 - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу загрузить видеофайл в корзину AWS S3 с помощью Boto3.Я уже создал контейнер с именем «django-test» и получил необходимые разрешения.Я использую Django и работаю на компьютере с Windows 10.

Я создал функцию под названием store_in_s3 в views.py файле в моем приложении Django.

Ожидаемый размер файла меньше 200 МБ.Я немного запутался с несколькими подходами, которые я пробовал.Ниже приведен существующий код

def store_in_s3(request):
        transfer = S3Transfer(boto3.client(
            's3',
            region_name = settings.AWS_S3_REGION_NAME,
            aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
            aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY
            ))
        client = boto3.client('s3')
        bucket = "django-test"
        file = request.FILES["file"]
        filename = file.name
        transfer.upload_file(filename, bucket, "test.mov")

. В этот момент я получаю следующую ошибку: FileNotFoundError: [WinError 2] The system cannot find the file specified: 'test.mov'

Но test.mov - это файл, который я загрузил с помощью формы HTML.

Мой код в HTML-форме приведен ниже:

<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.file }}
<button type="submit">Submit</button>
</form>

Дополнительная информация: Мне удалось загрузить видеофайл в какой-то момент этого процесса разработки, но на S3 егоразмер был смехотворно мал - всего 28 байт.Вот почему я возобновил сборку загрузчика.

enter image description here

Буду благодарен за любую помощь.Пожалуйста, не стесняйтесь, если вам нужна дополнительная информация по этому вопросу.Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2018

Как вы упомянули, размер файла превышает 2 МБ, он хранится во временной папке Django.Из сообщения об ошибке кажется, что имя файла не может быть найдено.Итак, попробуйте, передавая путь временного местоположения, в данном случае, то есть file.temporary_file_path()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...