我有一个Python脚本,可以利用最新的Vimeo API(https://developer.vimeo.com/api/)将一些视频上传到我的Vimeo帐户。
以下是该脚本的基本形式:
from vimeo import VimeoClient
vimeo = VimeoClient('my_token_here')
uid = vimeo.upload('/path/to/file.mov')
当file.mov
小于等于3MB时,一切正常,文件已成功上传。但是,对于较大的文件,我会收到超时错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/fabio/.virtualenvs/venv/src/vimeo/vimeo/uploads.py", line 79, in __call__
return do_upload()
File "/home/fabio/.virtualenvs/venv/src/vimeo/vimeo/uploads.py", line 70, in do_upload
self.upload_segment(upload_uri, _range, video_data, filetype or 'mp4')
File "/home/fabio/.virtualenvs/venv/src/vimeo/vimeo/uploads.py", line 135, in upload_segment
body=data, headers=request_headers)
File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/httpclient.py", line 85, in fetch
self._async_client.fetch, request, **kwargs))
File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/ioloop.py", line 389, in run_sync
return future_cell[0].result()
File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 131, in result
return super(TracebackFuture, self).result(timeout=timeout)
File "/home/fabio/.virtualenvs/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 65, in result
raise self._exception
HTTPError: HTTP 599: Timeout
这是我正在使用的vimeo库:https : //github.com/vimeo/vimeo.py。
我的虚拟环境中的Tornado库也更新为3.2.1版本。
对我有什么提示吗?
从旋风源,对于一个的默认请求超时HTTPClient
,其vimeo
使用是20秒。Vimeo库似乎尝试上载尽可能多的视频,然后查询服务器以查看成功上载了多少视频。上传您的视频可能要花费20秒钟以上,因此可能会超时。我不相信他们会正确处理此问题,因为您会从“龙卷风”中收到超时错误,但似乎他们希望支持不立即上传整个文件。
您可以尝试将vimeo
我上面链接的库代码修改为更长的超时时间,方法是将本地副本中的链接行更改为类似以下内容:
r = HTTPClient().fetch(upload_uri, method="PUT",
body=data, headers=request_headers,
request_timeout=9999.0)
如果这不起作用,您可以尝试在其github
问题跟踪器上提出问题,而实际从事该项目的人也许可以为您提供进一步的帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句