def setup_gs(self, access_key, secret_access_key, project_id, local_folder, holder, log=True, encrypt=False, encrypt_code=None, force_stop=True): try: self.gs_lock.acquire() if self.gs_handler: return self.gs_handler if force_stop and self.gs_handler: self.gs_handler.stop() if encrypt and encrypt_code: client = CryptoGSClient(access_key, secret_access_key, project_id, encrypt_code) else: client = GSClient(access_key, secret_access_key, project_id) storage = GSStorage(client, holder) try: handler = SyncHandler(storage, local_folder, sec=DEFAULT_SLEEP_SECS, log=log) handler.setDaemon(True) handler.start() self.gs_handler = handler self.save_gs_info(access_key, secret_access_key, project_id, local_folder, holder, log, encrypt, encrypt_code) return handler except GSError, e: raise CloudBackupError(e.src, e.err_no, e.msg) finally: self.gs_lock.release()
def setup_vdisk(self, account, password, local_folder, holder, is_weibo=False, log=True, encrypt=False, encrypt_code=None, force_stop=True): try: self.vdisk_lock.acquire() if not force_stop and self.vdisk_handler: return self.vdisk_handler if force_stop and self.vdisk_handler: self.vdisk_handler.stop() if encrypt and encrypt_code: client = CryptoVdiskClient(VDISK_APP_KEY, VDISK_APP_SECRET) client.auth(account, password, encrypt_code, 'sinat' if is_weibo else 'local') else: client = VdiskClient(VDISK_APP_KEY, VDISK_APP_SECRET) client.auth(account, password, 'sinat' if is_weibo else 'local') self.vdisk_token_refresh = VdiskRefreshToken(client) self.vdisk_token_refresh.setDaemon(True) self.vdisk_token_refresh.start() storage = VdiskStorage(client, holder_name=holder) try: handler = SyncHandler(storage, local_folder, sec=DEFAULT_SLEEP_SECS, log=log) handler.setDaemon(True) handler.start() self.vdisk_handler = handler self.save_vdisk_info(account, password, local_folder, holder, is_weibo, log, encrypt, encrypt_code) return handler except VdiskError, e: raise CloudBackupError(e.src, e.err_no, e.msg) finally: self.vdisk_lock.release()
def setup_vdisk(self, account, password, local_folder, holder, is_weibo=False, log=True, encrypt=False, encrypt_code=None, force_stop=True): try: self.vdisk_lock.acquire() if not force_stop and self.vdisk_handler: return self.vdisk_handler if force_stop and self.vdisk_handler: self.vdisk_handler.stop() if encrypt and encrypt_code: client = CryptoVdiskClient(VDISK_APP_KEY, VDISK_APP_SECRET) client.auth(account, password, encrypt_code, 'sinat' if is_weibo else 'local') else: client = VdiskClient(VDISK_APP_KEY, VDISK_APP_SECRET) client.auth(account, password, 'sinat' if is_weibo else 'local') self.vdisk_token_refresh = VdiskRefreshToken(client) self.vdisk_token_refresh.setDaemon(True) self.vdisk_token_refresh.start() storage = VdiskStorage(client, holder_name=holder) try: handler = SyncHandler(storage, local_folder, sec=DEFAULT_SLEEP_SECS, log=log) handler.setDaemon(True) handler.start() self.vdisk_handler = handler self.save_vdisk_info(account, password, local_folder, holder, is_weibo, log, encrypt, encrypt_code) return handler except VdiskError, e: raise CloudBackupError(e.src, e.err_no, e.msg) finally: self.vdisk_lock.release()
def setup_gs(self, access_key, secret_access_key, project_id, local_folder, holder, log=True, encrypt=False, encrypt_code=None, force_stop=True): try: self.gs_lock.acquire() if self.gs_handler: return self.gs_handler if force_stop and self.gs_handler: self.gs_handler.stop() if encrypt and encrypt_code: client = CryptoGSClient(access_key, secret_access_key, project_id, encrypt_code) else: client = GSClient(access_key, secret_access_key, project_id) storage = GSStorage(client, holder) try: handler = SyncHandler(storage, local_folder, sec=DEFAULT_SLEEP_SECS, log=log) handler.setDaemon(True) handler.start() self.gs_handler = handler self.save_gs_info(access_key, secret_access_key, project_id, local_folder, holder, log, encrypt, encrypt_code) return handler except GSError, e: raise CloudBackupError(e.src, e.err_no, e.msg) finally: self.gs_lock.release()