Django:使用Boto3将视频文件上传到S3存储桶的问题
我想上传一个视频文件到AWS S3桶使用Boto3。我已经创建了一个名为“django test”的bucket,并提供了所需的权限。我正在使用Django并在Windows10机器上工作 我在Django应用程序的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
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',]