function dest_sugarsync()
{
    global $WORKING, $STATIC;
    $WORKING['STEPTODO'] = 2 + filesize($STATIC['JOB']['backupdir'] . $STATIC['backupfile']);
    $WORKING['STEPDONE'] = 0;
    trigger_error(sprintf(__('%d. try sending backup to SugarSync...', 'backwpup'), $WORKING['DEST_SUGARSYNC']['STEP_TRY']), E_USER_NOTICE);
    require_once realpath(dirname(__FILE__) . '/../libs/sugarsync.php');
    try {
        $sugarsync = new SugarSync($STATIC['JOB']['sugaruser'], base64_decode($STATIC['JOB']['sugarpass']), $STATIC['BACKWPUP']['SUGARSYNC_ACCESSKEY'], $STATIC['BACKWPUP']['SUGARSYNC_PRIVATEACCESSKEY']);
        //Check Quota
        $user = $sugarsync->user();
        if (!empty($user->nickname)) {
            trigger_error(sprintf(__('Authed to SugarSync with Nick %s', 'backwpup'), $user->nickname), E_USER_NOTICE);
        }
        $sugarsyncfreespase = (double) $user->quota->limit - (double) $user->quota->usage;
        //float fixes bug for display of no free space
        if (filesize($STATIC['JOB']['backupdir'] . $STATIC['backupfile']) > $sugarsyncfreespase) {
            trigger_error(__('No free space left on SugarSync!!!', 'backwpup'), E_USER_ERROR);
            $WORKING['STEPTODO'] = 1 + filesize($STATIC['JOB']['backupdir'] . $STATIC['backupfile']);
            $WORKING['STEPSDONE'][] = 'DEST_SUGARSYNC';
            //set done
            return;
        } else {
            trigger_error(sprintf(__('%s free on SugarSync', 'backwpup'), formatBytes($sugarsyncfreespase)), E_USER_NOTICE);
        }
        //Create and change folder
        $sugarsync->mkdir($STATIC['JOB']['sugardir'], $STATIC['JOB']['sugarroot']);
        $dirid = $sugarsync->chdir($STATIC['JOB']['sugardir'], $STATIC['JOB']['sugarroot']);
        //Upload to Sugarsync
        $sugarsync->setProgressFunction('curl_progresscallback');
        trigger_error(__('Upload to SugarSync now started... ', 'backwpup'), E_USER_NOTICE);
        $reponse = $sugarsync->upload($STATIC['JOB']['backupdir'] . $STATIC['backupfile']);
        if (is_object($reponse)) {
            $STATIC['JOB']['lastbackupdownloadurl'] = $STATIC['WP']['ADMINURL'] . '?page=backwpupbackups&action=downloadsugarsync&file=' . (string) $reponse . '&jobid=' . $STATIC['JOB']['jobid'];
            $WORKING['STEPDONE']++;
            $WORKING['STEPSDONE'][] = 'DEST_SUGARSYNC';
            //set done
            trigger_error(sprintf(__('Backup transferred to %s', 'backwpup'), 'https://' . $user->nickname . '.sugarsync.com/' . $sugarsync->showdir($dirid) . $STATIC['backupfile']), E_USER_NOTICE);
        } else {
            trigger_error(__('Can not transfer backup to SugarSync!', 'backwpup'), E_USER_ERROR);
            return;
        }
        $sugarsync->setProgressFunction('');
        if ($STATIC['JOB']['sugarmaxbackups'] > 0) {
            //Delete old backups
            $backupfilelist = array();
            $getfiles = $sugarsync->getcontents('file');
            if (is_object($getfiles)) {
                foreach ($getfiles->file as $getfile) {
                    if ($STATIC['JOB']['fileprefix'] == substr($getfile->displayName, 0, strlen($STATIC['JOB']['fileprefix'])) and $STATIC['JOB']['fileformart'] == substr($getfile->displayName, -strlen($STATIC['JOB']['fileformart']))) {
                        $backupfilelist[] = $getfile->displayName;
                    }
                    $backupfileref[utf8_encode($getfile->displayName)] = $getfile->ref;
                }
            }
            if (sizeof($backupfilelist) > 0) {
                rsort($backupfilelist);
                $numdeltefiles = 0;
                for ($i = $STATIC['JOB']['sugarmaxbackups']; $i < count($backupfilelist); $i++) {
                    $sugarsync->delete($backupfileref[utf8_encode($backupfilelist[$i])]);
                    //delete files on Cloud
                    $numdeltefiles++;
                }
                if ($numdeltefiles > 0) {
                    trigger_error(sprintf(_n('One file deleted on SugarSync folder', '%d files deleted on SugarSync folder', $numdeltefiles, 'backwpup'), $numdeltefiles), E_USER_NOTICE);
                }
            }
        }
    } catch (Exception $e) {
        trigger_error(sprintf(__('SugarSync API: %s', 'backwpup'), $e->getMessage()), E_USER_ERROR);
    }
    $WORKING['STEPDONE']++;
}
Esempio n. 2
0
             $dropbox->setOAuthTokens($jobvalue['dropetoken'], $jobvalue['dropesecret']);
             $dropbox->fileopsDelete($backupfile);
             unset($dropbox);
         } catch (Exception $e) {
             $backwpup_message .= 'DROPBOX: ' . $e->getMessage() . '<br />';
         }
     }
 } elseif ($dest == 'SUGARSYNC') {
     if (!class_exists('SugarSync')) {
         require_once realpath(dirname(__FILE__) . '/../libs/sugarsync.php');
     }
     if (class_exists('SugarSync')) {
         if (!empty($jobvalue['sugarrefreshtoken'])) {
             try {
                 $sugarsync = new SugarSync($jobvalue['sugarrefreshtoken']);
                 $sugarsync->delete(urldecode($backupfile));
                 unset($sugarsync);
             } catch (Exception $e) {
                 $backwpup_message .= 'SUGARSYNC: ' . $e->getMessage() . '<br />';
             }
         }
     }
 } elseif ($dest == 'RSC') {
     if (!class_exists('CF_Authentication')) {
         require_once realpath(dirname(__FILE__) . '/../libs/rackspace/cloudfiles.php');
     }
     if (class_exists('CF_Authentication')) {
         if (!empty($jobvalue['rscUsername']) and !empty($jobvalue['rscAPIKey']) and !empty($jobvalue['rscContainer'])) {
             try {
                 $auth = new CF_Authentication($jobvalue['rscUsername'], $jobvalue['rscAPIKey']);
                 $auth->ssl_use_cabundle();