Django AttributeError at/upload_to_vimeo/“TypeError”对象没有属性“message”
将视频上载到vimeo时会抛出此错误 以下是代码 观点 模板Django AttributeError at/upload_to_vimeo/“TypeError”对象没有属性“message”,django,vimeo-api,Django,Vimeo Api,将视频上载到vimeo时会抛出此错误 以下是代码 观点 模板 <form action="" method="POST" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="video_file">
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="video_file">
<input type="submit" class="button inline-block bg-theme-1 text-white mt-5" value="Upload">
</form>
Vimeo端的一些粗心的编码,细微的差别如下所示: 尝试: …:int不是int …:除ValueError为e外: …:printe是异常:{}/{}。formattypee是异常,isInstance,exception ...: e是一个例外:False/True 因此,对于exception read:always的任何子类,它们的异常检查都失败。由于它们不会抛出带有消息属性的异常,因此您最终会得到一个AttributeError 但无论如何,你不会有太多的事情要做,因为如果他们编码正确,他们会告诉你:“通过tus上传时出现意外错误。”。归根结底,您无法在3次重试内从Tus中获得重新启动当前区块上载的偏移量。祝你狩猎好运 发表评论 request.FILES是一个文件对象数组。不是一个文件名数组。api需要文件名,但他们不检查是否获得了文件名或是否支持类似文件的对象。他们也做可怕的事情: 尝试: 返回os.path.getsizefilename 除类型错误外: 返回lenfilename.read 所以理论上它们支持类似文件的对象,但显然不完全支持。此外,lenfilename.read对服务器内存非常危险,尤其是对于并行的视频文件,因为整个文件都将被读取到内存中。我越是阅读这个API,就越不想使用它 无论如何,您应该将以下内容添加到设置中:
FILE_UPLOAD_HANDLERS = [
'django.core.files.uploadhandler.TemporaryFileUploadHandler'
] # Removed MemoryFileUploadHandler
正如所评论的那样,这将删除,因此我们可以依赖于我们的可用性。此外,Django根据我上次检查的从内存到磁盘的文件大小(大约3MB),在内存和磁盘存储之间切换。这是一个很少使用的b,API不会与它们一起工作
然后将路径传递到Vimeo:
file_obj=request.FILES['video_file']
路径=文件\对象。临时文件\路径方法非属性
尝试:
v、 上传路径
除VimeOutloadFailure外:
普林图
最后:
file_obj.close这将删除该文件
如果os.path.existspath:
os.unlinkpath,但这将完成此操作,权限除外
Vimeo端的一些粗心的编码,细微的差别如下所示: 尝试: …:int不是int …:除ValueError为e外: …:printe是异常:{}/{}。formattypee是异常,isInstance,exception ...: e是一个例外:False/True 因此,对于exception read:always的任何子类,它们的异常检查都失败。由于它们不会抛出带有消息属性的异常,因此您最终会得到一个AttributeError 但无论如何,你不会有太多的事情要做,因为如果他们编码正确,他们会告诉你:“通过tus上传时出现意外错误。”。归根结底,您无法在3次重试内从Tus中获得重新启动当前区块上载的偏移量。祝你狩猎好运 发表评论 request.FILES是一个文件对象数组。不是一个文件名数组。api需要文件名,但他们不检查是否获得了文件名或是否支持类似文件的对象。他们也做可怕的事情: 尝试: 返回os.path.getsizefilename 除类型错误外: 返回lenfilename.read 所以理论上它们支持类似文件的对象,但显然不完全支持。此外,lenfilename.read对服务器内存非常危险,尤其是对于并行的视频文件,因为整个文件都将被读取到内存中。我越是阅读这个API,就越不想使用它 无论如何,您应该将以下内容添加到设置中:
FILE_UPLOAD_HANDLERS = [
'django.core.files.uploadhandler.TemporaryFileUploadHandler'
] # Removed MemoryFileUploadHandler
正如所评论的那样,这将删除,因此我们可以依赖于我们的可用性。此外,Django根据我上次检查的从内存到磁盘的文件大小(大约3MB),在内存和磁盘存储之间切换。这是一个很少使用的b,API不会与它们一起工作
然后将路径传递到Vimeo:
file_obj=request.FILES['video_file']
路径=文件\对象。临时文件\路径方法非属性
尝试:
v、 上传路径
除VimeOutloadFailure外:
普林图
最后:
file_obj.close这将删除该文件
如果os.path.existspath:
os.unlinkpath,但这将完成此操作,权限除外
如果我上传视频文件directlyv.upload'test1.mp4'而不是一个表单,它可以正常工作,没有错误,但是用户需要上传它,所以还有其他选择吗?除了获取FileException类型的表单之外:AttributeError at/upload_to_vimeo/Exception Value:'function'对象没有属性'read',这是新的错误抱歉,这是一个方法而不是属性。非常感谢!!你救了我的饭碗!!如果我上传视频文件directlyv.upload'test1.mp4'而不是一个表单,它可以正常工作,没有错误,但是用户需要上传它,所以还有其他选择吗?另外
而不是获取FileException类型的表单:AttributeError at/upload_to_vimeo/Exception Value:'function'对象没有属性'read',这是新的错误抱歉,这是一个方法而不是属性。非常感谢!!你救了我的饭碗!!
FILE_UPLOAD_HANDLERS = [
'django.core.files.uploadhandler.TemporaryFileUploadHandler'
] # Removed MemoryFileUploadHandler