Django:使用Boto3将视频文件上传到S3存储桶的问题

Django:使用Boto3将视频文件上传到S3存储桶的问题,django,python-3.x,amazon-s3,file-upload,boto3,Django,Python 3.x,Amazon S3,File Upload,Boto3,我想上传一个视频文件到AWS S3桶使用Boto3。我已经创建了一个名为“django test”的bucket,并提供了所需的权限。我正在使用Django并在Windows10机器上工作 我在Django应用程序的views.py文件中创建了一个名为store\u in_s3的函数 预期的文件大小小于200MB。我对我尝试过的几种方法有点困惑。以下是现行守则 def store_in_s3(request): transfer = S3Transfer(boto3.client

我想上传一个视频文件到AWS S3桶使用Boto3。我已经创建了一个名为“django test”的bucket,并提供了所需的权限。我正在使用Django并在Windows10机器上工作

我在Django应用程序的
views.py
文件中创建了一个名为
store\u in_s3
的函数

预期的文件大小小于200MB。我对我尝试过的几种方法有点困惑。以下是现行守则

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]系统找不到指定的文件:“test.mov”

但是
test.mov
是我用HTML表单上传的文件

我的HTML格式代码如下:

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

{%csrf_令牌%}
{{form.file}
提交
其他信息:在这个开发过程中,我曾成功上传过视频文件,但在S3上,它的大小小得离谱——只有28字节。这就是我重新开始构建上传程序的原因


我将非常感谢你的帮助。如果您需要关于这个问题的更多信息,请随时提供。谢谢。

正如您提到的,文件大小大于2MB,Django将其存储在临时位置。从错误消息中,似乎找不到文件名。因此,请通过传递临时位置路径来尝试,在本例中,即
文件.temporary\u file\u path()

此外,我建议使用此解决方案的任何人在您的设置中包括以下行。否则,如果文件大小小于2.5Mb(或2Mb)->文件上载\u处理程序=['django.core.files.uploadhandler.TemporaryFileUploadHandler',]