/** * Run the backup */ public function backup($files) { $dropbox = new \Dropbox\API($this->_getOAuth()); $fail = false; foreach ($files as $src => $filename) { $result = $dropbox->putFile($src, $filename); if ($result['code'] != 200) { $fail = true; break; } } return !$fail; }
/** * Perform the action. * * @param EcrProjectZiper $ziper * * @return \EcrProjectAction */ public function run(EcrProjectZiper $ziper) { $logger = $ziper->logger; //-- Require the Dropbox bootstrap require JPATH_COMPONENT . '/helpers/Dropbox/bootstrap.php'; $protocol = false == empty($_SERVER['HTTPS']) ? 'https' : 'http'; $callback = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; try { //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $encrypter = new \Dropbox\OAuth\Storage\Encrypter('12312323423435456654457545646542'); $storage = new \Dropbox\OAuth\Storage\Session($encrypter); $OAuth = new \Dropbox\OAuth\Consumer\Curl($this->dboxKey, $this->dboxSecret, $storage, $callback); $dropbox = new \Dropbox\API($OAuth); //$accountInfo = $dropbox->accountInfo(); //$logger->log('Dropbox account info:'.print_r($accountInfo, 1)); $files = $ziper->getCreatedFiles(); /* @var EcrProjectZiperCreatedfile $file */ foreach ($files as $i => $file) { $logger->log(sprintf('Uploading %s to Dropbox...', $file->name)); $response = $dropbox->putFile($file->path); if ('200' !== $response['code']) { $logger->log(print_r($response, 1)); $this->abort('Failed to upload the file to Dropbox', $ziper); } $response = $dropbox->shares($file->name); if ('200' !== $response['code']) { $this->abort('Can not get the Dropbox share link', $ziper); $logger->log(print_r($response['code'], 1)); } $link = $response['body']->url; $ziper->setAlternateDownloadLink($i, $link); $logger->log('Copy the Link: ' . $link, '', JLog::WARNING); } $logger->log('Dropbox script executed succesfully.'); } catch (Dropbox\Exception $e) { $this->abort(sprintf('Dropbox: %s', $e->getMessage()), $ziper); } catch (Exception $e) { $this->abort(sprintf('Dropbox action: %s', $e->getMessage()), $ziper); } return $this; }