3

こんにちは、次のコードを使用してファイルを Google ドライブにアップロードしようとしました

def upload_file(self,file_name,path):

    parents = None
    if not path == None:
        parents = self.create_path(path)
    mime_type = self.get_mime_type_for(file_name)
    file_id = self.check_file_exist(file_name,parents,mime_type)
    if file_id == None:

        print "creating file...........",file_name                      
        print "mime_type",mime_type
        media = MediaFileUpload(file_name, mimetype=mime_type, resumable=True)
        body = {
            'title': file_name,
            'description': 'A test document',
            'mimeType': mime_type
        }
        if not parents == None:
            body['parents'] = [{'id': parents}]
        f = self.drive_service.files().insert(body=body, media_body=media).execute()
    else:
        print "file exists........... updating"
        self.update_file(file_id, file_name)

このコードは、より小さいファイル (最大 25MB までテスト済み) で機能します。しかし、大きなファイル (70MB) をアップロードしようとすると、システムはエラー メッセージを表示します。

トレースバック (最新の呼び出しが最後):

ファイル「googledrive.py」の 176 行目

gd.upload_file("test.mp4","/メディア/メディア")

ファイル「googledrive.py」、122 行目、upload_file 内

f = self.drive_service.files().insert(body=body, media_body=media).execute()

ファイル「/usr/local/lib/python2.7/dist-packages/oauth2client/util.py」、132 行目、positional_wrapper 内

return wrap(*args, **kwargs)

ファイル「/usr/local/lib/python2.7/dist-packages/apiclient/http.py」、688行目、実行中

_, 本体 = self.next_chunk(http=http, num_retries=num_retries)

ファイル「/usr/local/lib/python2.7/dist-packages/oauth2client/util.py」、132 行目、positional_wrapper 内

return wrap(*args, **kwargs)

ファイル "/usr/local/lib/python2.7/dist-packages/apiclient/http.py"、867 行目、next_chunk 内

ヘッダー=ヘッダー)

ファイル「/usr/local/lib/python2.7/dist-packages/oauth2client/util.py」、132 行目、positional_wrapper 内

return wrap(*args, **kwargs)

ファイル「/usr/local/lib/python2.7/dist-packages/oauth2client/client.py」、490行目、new_request

リダイレクト、connection_type)

ファイル "/usr/local/lib/python2.7/dist-packages/httplib2/ init .py"、1570 行目、リクエスト

(応答、コンテンツ) = self._request(conn、機関、uri、request_uri、メソッド、本文、ヘッダー、リダイレクト、キャッシュキー)

ファイル "/usr/local/lib/python2.7/dist-packages/httplib2/ init .py"、1317 行目、_request 内

(応答、コンテンツ) = self._conn_request(conn、request_uri、メソッド、ボディ、ヘッダー)

ファイル "/usr/local/lib/python2.7/dist-packages/httplib2/ init .py"、1286 行目、_conn_request 内

応答 = conn.getresponse()

getresponse のファイル「/usr/lib/python2.7/httplib.py」の 1045 行目

response.begin()

ファイル「/usr/lib/python2.7/httplib.py」、409行目、開始

バージョン、ステータス、理由 = self._read_status()

ファイル "/usr/lib/python2.7/httplib.py"、373 行目、_read_status

BadStatusLine(行) を上げる

httplib.BadStatusLine: ''
4

1 に答える 1

2

アップロードに約 1 時間以上かかる場合、トークンの有効期限が切れ、ダウンロードが失敗する可能性があります。これは既知の問題です。

また、BadStatusLine 例外をスローする Google Mirror API (Python)も参照してください。

于 2013-08-15T09:57:56.243 に答える