Ejemplo n.º 1
0
 def upload_curl(self, savedir, localfile):
     '''
     使用curl上传文件
     上传大文件时使用此接口,可显示上传进度
     @param savedir: 远端保存路径
     @param localfile: 本地文件完整路径
     '''
     savedir = util.encode_utf8(savedir)
     localfile = util.encode_utf8(localfile)
     url = 'https://c.pcs.baidu.com/rest/2.0/pcs/file'
     query = [('method', 'upload'), ('app_id', _APP_ID),
              ('ondup', 'newcopy'), ('dir', savedir),
              ('filename', os.path.basename(localfile)),
              ('BDUSS', urllib.unquote(self.bduss))]
     url = '%s?%s' % (url, urllib.urlencode(query))
     # 创建临时文件用来保存输出结果
     _, tmp_file = tempfile.mkstemp(suffix='.json')
     # 调用curl上传文件
     cmd = [
         'curl', '-A', _USER_AGENT, '-H', 'Expect:', '-F',
         'file=@%s;type=application/octet-stream' % localfile, '-o',
         tmp_file, url
     ]
     util.subprocess_call(cmd)
     # 读取输出结果
     with open(tmp_file, 'r') as fp:
         result = json.load(fp)
     return result
Ejemplo n.º 2
0
 def upload_data(self, savedir, filename, filedata):
     '''
     上传文件数据
     @param savedir: 远程保存路径
     @param filename: 保存文件名
     @param filedata: 文件数据
     @return:
     '''
     savedir = util.encode_utf8(savedir)
     filename = util.encode_utf8(filename)
     url = 'https://c.pcs.baidu.com/rest/2.0/pcs/file'
     query = [
         ('method', 'upload'),
         ('app_id', _APP_ID),
         ('ondup', 'newcopy'),
         ('dir', savedir),
         ('filename', filename),
         ('BDUSS', urllib.unquote(self.bduss))
          ]
     url = '%s?%s' % (url, urllib.urlencode(query))
     _logger.debug('upload url: %s' % url)
     req = http.MultipartRequest(url)
     req.set_parts([
                    http.FileDataPart('file', filename, filedata)
                    ])
     req.add_header('User-Agent', _USER_AGENT)
     try:
         resp = urllib2.urlopen(req)
         return json.load(resp)
     except urllib2.HTTPError as he:
         return json.load(he)
Ejemplo n.º 3
0
 def upload_curl(self, savedir, localfile):
     '''
     使用curl上传文件
     上传大文件时使用此接口,可显示上传进度
     @param savedir: 远端保存路径
     @param localfile: 本地文件完整路径
     '''
     savedir = util.encode_utf8(savedir)
     localfile = util.encode_utf8(localfile)
     url = 'https://c.pcs.baidu.com/rest/2.0/pcs/file'
     query = [
         ('method', 'upload'),
         ('app_id', _APP_ID),
         ('ondup', 'newcopy'),
         ('dir', savedir),
         ('filename', os.path.basename(localfile)),
         ('BDUSS', urllib.unquote(self.bduss))
          ]
     url = '%s?%s' % (url, urllib.urlencode(query))
     # 创建临时文件用来保存输出结果
     _, tmp_file = tempfile.mkstemp(suffix='.json')
     # 调用curl上传文件
     cmd = ['curl',
            '-A', _USER_AGENT,
            '-H', 'Expect:',
            '-F', 'file=@%s;type=application/octet-stream' % localfile,
            '-o', tmp_file, url]
     util.subprocess_call(cmd)
     # 读取输出结果
     with open(tmp_file, 'r') as fp:
         result = json.load(fp)
     return result
Ejemplo n.º 4
0
 def upload(self, savedir, localfile):
     '''
     上传文件
     @param savedir: 远端保存路径
     @param localfile: 本地文件完整路径
     '''
     savedir = util.encode_utf8(savedir)
     localfile = util.encode_utf8(localfile)
     url = 'https://c.pcs.baidu.com/rest/2.0/pcs/file'
     query = [
         ('method', 'upload'),
         ('app_id', _APP_ID),
         ('ondup', 'newcopy'),
         ('dir', savedir),
         ('filename', os.path.basename(localfile)),
         ('BDUSS', urllib.unquote(self.bduss))
          ]
     url = '%s?%s' % (url, urllib.urlencode(query))
     _logger.debug('upload url: %s' % url)
     req = http.MultipartRequest(url)
     req.set_parts([
                    http.FilePart('file', localfile)
                    ])
     req.add_header('User-Agent', _USER_AGENT)
     try:
         resp = urllib2.urlopen(req)
         return json.load(resp)
     except urllib2.HTTPError as he:
         return json.load(he)
Ejemplo n.º 5
0
 def upload(self, savedir, localfile):
     '''
     上传文件
     @param savedir: 远端保存路径
     @param localfile: 本地文件完整路径
     '''
     savedir = util.encode_utf8(savedir)
     localfile = util.encode_utf8(localfile)
     url = 'https://c.pcs.baidu.com/rest/2.0/pcs/file'
     query = [('method', 'upload'), ('app_id', _APP_ID),
              ('ondup', 'newcopy'), ('dir', savedir),
              ('filename', os.path.basename(localfile)),
              ('BDUSS', urllib.unquote(self.bduss))]
     url = '%s?%s' % (url, urllib.urlencode(query))
     _logger.debug('upload url: %s' % url)
     req = http.MultipartRequest(url)
     req.set_parts([http.FilePart('file', localfile)])
     req.add_header('User-Agent', _USER_AGENT)
     try:
         resp = urllib2.urlopen(req)
         return json.load(resp)
     except urllib2.HTTPError as he:
         return json.load(he)
Ejemplo n.º 6
0
 def upload_data(self, savedir, filename, filedata):
     '''
     上传文件数据
     @param savedir: 远程保存路径
     @param filename: 保存文件名
     @param filedata: 文件数据
     @return:
     '''
     savedir = util.encode_utf8(savedir)
     filename = util.encode_utf8(filename)
     url = 'https://c.pcs.baidu.com/rest/2.0/pcs/file'
     query = [('method', 'upload'),
              ('app_id', _APP_ID), ('ondup', 'newcopy'), ('dir', savedir),
              ('filename', filename), ('BDUSS', urllib.unquote(self.bduss))]
     url = '%s?%s' % (url, urllib.urlencode(query))
     _logger.debug('upload url: %s' % url)
     req = http.MultipartRequest(url)
     req.set_parts([http.FileDataPart('file', filename, filedata)])
     req.add_header('User-Agent', _USER_AGENT)
     try:
         resp = urllib2.urlopen(req)
         return json.load(resp)
     except urllib2.HTTPError as he:
         return json.load(he)