我尝试使用put_file上传文件时获得此回溯(示例https://www.dropbox.com/developers/start/files#python中的源代码)。这个错误是什么意思?什么是处理它的合适方式?
Traceback (most recent call last):
File "testDRBX.py", line 30, in <module>
response = client.put_file('magnum-opus.txt', f)
File "C:\Users\hicom\AppData\Roaming\Python\Python27\site-packages\dropbox\cli
ent.py", line 149, in put_file
return RESTClient.PUT(url, file_obj, headers)
File "C:\Users\hicom\AppData\Roaming\Python\Python27\site-packages\dropbox\res
t.py", line 146, in PUT
return cls.request("PUT", url, body=body, headers=headers, raw_response=raw_
response)
File "C:\Users\hicom\AppData\Roaming\Python\Python27\site-packages\dropbox\res
t.py", line 111, in request
r = conn.getresponse()
File "C:\Python27\lib\httplib.py", line 1027, in getresponse
response.begin()
File "C:\Python27\lib\httplib.py", line 407, in begin
version, status, reason = self._read_status()
File "C:\Python27\lib\httplib.py", line 371, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
答案 0 :(得分:1)
问题出在HTTP标头的USER-AGENT中。它默认为'OfficialDropboxPythonSDK / 1.4'。我在rest.py(第55行)中将其更改为任何其他,'Mozilla / 5.0(Windows; U; Windows NT 5.1;它; rv:1.8.1.11)Gecko / 20071127 Firefox / 2.0.0.11'。 Ploblem解决了。
答案 1 :(得分:0)
BadStatusLine表示您的脚本与Dropbox服务器之间的连接丢失,可能是由于超时。我想,你需要更快地完成整个过程。
答案 2 :(得分:0)
如果您过快地运行请求并且Dropbox的服务器速率限制您,Dropbox API也会导致BadStatusLine。
我的开发机器没有足够快的速度来触发这个,但是当快速连续运行140个请求(列表理解)时,Amazon EC2实例能够触发这种情况。
我认为这不是你的情况,但我想为其他遇到此问题的人注意这一点。