提问者:小点点

上传文件大于70 MB到谷歌驱动器使用Python


嗨,我试图上传文件到谷歌驱动器使用以下代码

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","/media/media")

上传文件中第122行的文件“googledrive.py”

f=自我。驾驶室服务。文件()。插入(主体=主体,介质\主体=介质)。执行()

文件“/usr/local/lib/python2.7/dist packages/oauth2client/util.py”,第132行,位于位置包装器中

返回包装(*args,**kwargs)

文件“/usr/local/lib/python2.7/dist packages/apiclient/http.py”,第688行,在execute中

_身体=自我。下一个\u块(http=http,num\u retries=num\u retries)

文件“/usr/local/lib/python2.7/dist packages/oauth2client/util.py”,第132行,位于位置包装器中

返回包装(*args,**kwargs)

文件“/usr/local/lib/python2.7/dist-packages/apiclient/http.py”,第867行,在下一块中

页眉=页眉)

文件“/usr/local/lib/python2.7/dist packages/oauth2client/util.py”,第132行,位于位置包装器中

返回包装(*args,**kwargs)

文件"/usr/local/lib/python2.7/dist-pack/oAuth2Client/client.py",第490行,new_request

重定向、连接(U类型)

请求中的文件"/usr/local/lib/python2.7/dist包/httpinit.py",第1570行

(响应,内容)=自我。_request(conn,权威,uri,request_uri,方法,正文,标题,重定向,cachekey)

文件“/usr/local/lib/python2.7/dist packages/httplib2/init.py”,第1317行,在请求中

(响应,内容)=自我。_conn_request(conn,request_uri,方法,正文,标题)

_conn_request中的文件"/usr/local/lib/python2.7/dist-包/http://init.py",第1286行

response=conn.getresponse()

文件"/usr/lib/python2.7/httplib.py",第1045行,在get响应中

回答开始

文件“/usr/lib/python2.7/httplib.py”,第409行,在begin中

版本、状态、原因=自身_读_状态()

文件“/usr/lib/python2.7/httplib.py”,第373行,处于读取状态

提高BadStatusLine(行)

httplib.BadStatusLine: ''

共1个答案

匿名用户

如果上传时间超过约一小时,令牌可能会过期,下载将失败。这是一个众所周知的问题。

另外,请参见Google镜像API抛出状态行异常(Python)