1

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: ''
4

3 に答える 3

1

問題は HTTP ヘッダーの USER-AGENT にあります。デフォルトでは「OfficialDropboxPythonSDK/1.4」です。たとえば、rest.py (行 55) で「Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11」に変更しました。問題は解決しました。

于 2012-06-21T08:08:05.353 に答える
0

リクエストの実行速度が速すぎて Dropbox のサーバーのレート制限がかかると、Dropbox API も BadStatusLine になります。

私の開発マシンはこれをトリガーするのに十分な速さではありませんでしたが、Amazon EC2 インスタンスは、140 のリクエストを立て続けに実行すると (リスト内包表記)、この条件をトリガーすることができました。

これはあなたのケースではないと思いますが、これに遭遇した他の誰かのためにこれに注意したかった.

于 2012-12-21T05:55:29.953 に答える
0

BadStatusLine は、おそらくタイムアウトが原因で、スクリプトと Dropbox サーバー間の接続が失われたことを意味します。プロセス全体をより迅速に行う必要があると思います。

https://forums.dropbox.com/topic.php?id=34037#post-297553

于 2012-11-07T08:34:34.290 に答える