예제 #1
0
$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'))));
    }