$mount = $externalManager->addShare($remote, $token, $password, $name, $owner, true); /** * @var \OCA\Files_Sharing\External\Storage $storage */ $storage = $mount->getStorage(); try { // check if storage exists $storage->checkStorageAvailability(); } catch (\OCP\Files\StorageInvalidException $e) { // note: checkStorageAvailability will already remove the invalid share \OCP\Util::writeLog('files_sharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), \OCP\Util::DEBUG); \OCP\JSON::error(array('data' => array('message' => $l->t('Could not authenticate to remote share, password might be wrong')))); exit; } catch (\Exception $e) { \OCP\Util::writeLog('files_sharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), \OCP\Util::DEBUG); $externalManager->removeShare($mount->getMountPoint()); \OCP\JSON::error(array('data' => array('message' => $l->t('Storage not valid')))); exit; } $result = $storage->file_exists(''); if ($result) { try { $storage->getScanner()->scanAll(); \OCP\JSON::success(); } catch (\OCP\Files\StorageInvalidException $e) { \OCP\Util::writeLog('files_sharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), \OCP\Util::DEBUG); \OCP\JSON::error(array('data' => array('message' => $l->t('Storage not valid')))); } catch (\Exception $e) { \OCP\Util::writeLog('files_sharing', 'Invalid remote storage: ' . get_class($e) . ': ' . $e->getMessage(), \OCP\Util::DEBUG); \OCP\JSON::error(array('data' => array('message' => $l->t('Couldn\'t add remote share')))); }