def __init__(self): print("BaiduYun") self.username = input("Username: "******"initialize BaiduYun for %s " % self.username) print("you may need to recognize a photo and input the message code") self.password = getpass.getpass() self.pcs = PCS(self.username, self.password)
def _get_pcs(conf): def _captcha_callback(img_url): code = _recognize_img(img_url) if code: return code logger.info('%s\nOpen url above, then input verify code.' % img_url) return raw_input('captcha> ') global _pcs if _pcs: return _pcs try: username = conf.get('baidupan', 'username') password = conf.get('baidupan', 'password') if not username or not password: logger.error('No username or password found.') sys.exit(-1) # _pcs = PCS(username, password, # captcha_callback=_captcha_callback) _pcs = PCS(username, password) logger.info('Baidupan login successfully.') return _pcs except LoginFailed: import traceback traceback.print_exc() logger.error('Failed to login in baidupan.') sys.exit(-1)
def add_remote_download_task(self, link): """ 向百度网盘中添加离线下载链接 """ ruokuai_captcha_handler = functools.partial( self.ruokuai_captcha_handler, self.captcha_params) # 初始化pcs,这里设置了验证码处理函数和验证码处理参数 pcs = PCS( self.baidu_username, self.baidu_password, ruokuai_captcha_handler, None, ) # 获取下载路径中的文件,防止文件重复添加 rsp = pcs.list_files(BASE_PATH) result = rsp.json() exist_list = [] if result['errno'] == 0: exist_list = result['list'] else: print(json.dumps(result)) exist_names = [exist['server_filename'] for exist in exist_list] if link not in exist_names: # 网盘中不存在的才添加 pcs.add_download_task(link, BASE_PATH) else: print(link + ' 已经存在于网盘中')
def upload(file): pcs = PCS('username', 'userpwd') remote_path = '/apps/raspi/' + '-'.join(file.split('-')[:3]) with open('file', 'rb') as f: try: pcs.upload(remote_path, f, file) except: pass
def __init__(self, filepath, username, password): """ Login """ (self.filepath, self.filename, self.dirname, self.filesize) = (filepath, os.path.basename(filepath), os.path.dirname(filepath), os.path.getsize(filepath)) self.path = self.dirname + '\\' + self.filename.split('.')[0] self.pcs = PCS(username, password) #Login
def do_login(self, args, opts): print 'logging in, please wait ...' self.pcs = PCS(opts.username, opts.password, captcha_callback = handle_captcha) # self.pcs.get_fastest_pcs_server() res = {} for retry in range(3): res = json.loads(self.pcs.quota().content) if res['errno'] == 0: break else: res = {} time.sleep(retry+1) if res.get('errno') == 0: print 'Login success. storage used: %s/%s' % (readable_size(res['used']), readable_size(res['total'])) else: print 'login failed: %r' % res
def __init__(self, username, password, *args, **kw): self.disk = PCS(username, password) self.buffer = {} self.traversed_folder = {} self.bufferLock = Lock() self.upload_blocks = {} # 文件上传时用于记录块的md5,{PATH:{TMP:'',BLOCKS:''} self.create_tmp = {} # {goutputstrem_path:file} self.upload_fails = {} # self.fd = 3 # 初始化百度服务器 print '设置pcs服务器' pcs = self.disk.get_fastest_pcs_server() self.disk.set_pcs_server(pcs) print 'pcs api server:', pcs ''' print '设置百度网盘服务器,时间比较长,请耐心等待' pan = self.disk.get_fastest_mirror() self.disk.set_pan_server(pan) print 'baidupan server',pan ''' self.uploadLock = Lock() # 上传文件时不刷新目录 self.readLock = Lock() self.downloading_files = []
from baidupcsapi import PCS pcs = PCS('17624071108', '') print(pcs.quota().content) print(pcs.list_files('/').content)
from baidupcsapi import PCS pcs = PCS('lpbirdueng', 'lupeng') #pcs.info(verify=False) print pcs.quota().content print pcs.list_files('/').content
with open(filePath, 'rb') as infile: while 1: data = infile.read(chunkSize) if len(data) == 0: break smallfile = os.path.join(tmpDir, 'tmp%d' % fid) with open(smallfile, 'wb') as f: f.write(data) print('chunk%d size %d' % (fid, len(data))) fid += 1 print('start uploading...') ret = pcs.upload_tmpfile(open(smallfile, 'rb'), callback=ProgressBar()) md5list.append(json.loads(ret.content)['md5']) print('md5: %s' % (md5list[-1])) os.remove(smallfile) os.rmdir(tmpDir) pcs.upload_superfile(os.path.join(remotePath, os.path.basename(filePath)), md5list) pcs = PCS('18661168001', 'Carl656693') chunkSize = 1024 * 1024 * 256 tmpDir = tempfile.mkdtemp('bdpcs') remotePath = "/yunbeifeng" for each in os.listdir('upload'): print 'upload', each upload(os.path.join('upload', each), remotePath) print 'finish', each
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 上传文件到百度网盘 >>> python upload_to_baidu_wangpan.py data/finance_news/finance_news.2017-05-14.csv.bz2 /Crawler/stock/finance_news/ """ import sys import os, json, sys, tempfile from baidupcsapi import PCS pcs = PCS('username', 'password') chinksize = 1024 * 1024 * 16 fid = 1 md5list = [] tmpdir = tempfile.mkdtemp('bdpcs') with open(sys.argv[1], 'rb') as infile: while 1: data = infile.read(chinksize) if len(data) == 0: break smallfile = os.path.join(tmpdir, 'tmp%d' % fid) with open(smallfile, 'wb') as f: f.write(data) print('chunk%d size %d' % (fid, len(data))) fid += 1 print('start uploading...') ret = pcs.upload_tmpfile(open(smallfile, 'rb')) md5list.append(json.loads(ret.content)['md5']) print('md5: %s' % (md5list[-1])) os.remove(smallfile)
i=suffixs.index(suffix) addSuffix(name) print(name) except : pass #addSuffixInFolders("/home/guci/我的坚果云") addSuffixInFolders("/home/guci/share/baidunetdisk") addSuffixInFolders("/home/guci/projects") addSuffixInFolders("/home/guci/gdrive/all/") print('finished') #%% from baidupcsapi import PCS pcs = PCS('*****@*****.**','guci700127') print (pcs.quota().content) #print (pcs.list_files('/').content) #%% def indexFile(file): print(file) def listFolder(folder): print(folder) try: elements= json.loads(pcs.list_files(folder).content.decode())["list"] #pcs.list_files('/',"name","asc").json().get("list") for element in elements: if element["isdir"]==1: listFolder(element["path"])
progressbar.Percentage(), ' ', progressbar.Bar(marker=progressbar.RotatingMarker('>')), ' ', progressbar.ETA() ] self.pbar = progressbar.ProgressBar(widgets=self.widgets, maxval=kwargs['size']).start() self.first_call = False if kwargs['size'] <= kwargs['progress']: self.pbar.finish() else: self.pbar.update(kwargs['progress']) def backup(): try: copy( './database/data.db', './database/data' + strftime("%Y-%m-%d %H:%M:%S", localtime()) + '.db') except IOError as e: print("Unable to copy file. %s" % e) if __name__ == '__main__': pcs = PCS('wbj512291', 'ILY999@wbJ') print(pcs.quota().content) # test_file = open('data.db', 'rb').read() print(pcs.list_files('/').content) # ret = pcs.upload('/', test_file, 'data.db', callback=ProgressBar())