Извините, форум закрыт!

Вход в форум не работает, можно читать форум под гостем.

Если лето, то лето во всём!

Автор Тема: Яндекс.Диск и Google Drive в Linux  (Прочитано 9483 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн skylexusАвтор темы

  • Администратор
  • *****
  • Сообщений: 6890
  • Зеркала небес взгляд мой отражают
    • о спутниковой рыбалке и интернете
  • DVB: 3G
  • Спутник: 7E,36E,60E
Яндекс.Диск и Google Drive в Linux
« : 21 Август 2012, 19:40 »
Подключении к хранилищам Wuala и Dropbox в Linux уже описывалось, на сей раз пришёл черёд сервисам хранения Яндекс.Диск и Google Drive. Во-первых, почему отделил описание подключения этих двух файлохранилищ от те двух и почему именно объединил их в общую тему? Дело в том, что в плане подключения под ОС семейства Linux Яндекс.Диск и Google Drive имеют одну не очень хорошую общую черту: у обоих отсутствуют родные приложения для подключения к хранилищу пользователя. На мой взгляд это достаточно не обдуманный шаг, это хорошо видно по тому, как в последнее время Google решил этот пробел устранить.

Теперь об отличиях сервисов Яндекс.Диск и Google Drive в плане подключения под Linux. Если говорить об этом, то у  Яндекс.Диск есть неоспоримое преимущество, заключающееся в возможности работы по протоколу WebDAV. Это добавляет универсальности процессу интеграции с ОС и избавляет от жёсткой привязки к конкретному списку софта. Приложение, умеющее работать по протоколу WebDAV сможет подключиться к Яндекс.Диск, тем самым предоставив пользователю возможность прозрачно заливать свои файлы в Яндекс.Диск и обратно получая их из хранилища. Такой возможности лишён сервис Google Drive, в этом его большой минус.

Начну с сервиса Яндекс.Диск. Помимо интеграции посредством WebDAV, есть возможность смонтировать хранилища прозрачно через специфические файловые системы наподобие fusedav или davfs2. Эти возможности будут описаны позже.

Оффлайн skylexusАвтор темы

  • Администратор
  • *****
  • Сообщений: 6890
  • Зеркала небес взгляд мой отражают
    • о спутниковой рыбалке и интернете
  • DVB: 3G
  • Спутник: 7E,36E,60E
Яндекс.Диск и Google Drive в Linux
« Ответ #1 : 21 Август 2012, 20:01 »
Подключение к Яндекс.Диск под Linux в рабочих средах Gnome/Unity

Итак, сначала о подключении к Яндекс.Диск из Linux с рабочими столами Gnome и Unity. Для определённости я выбрал дистрибутив Ubuntu 12.04 с Unity, будь он не ладен!  >:( Привет обладателям недокомпьютеров!  ;D

Подлючение производим с помощью родного файлового менеджера Nautilus. В меню файл наутилуса ищем пункт Подключиться к серверу... и выбираем его.



После чего выскакивает следующее диалоговое окно с необходимостью заполнения типа протокола, номера порта, а также заполнения авторизационных данных, полученных при открытии личного хранилища Яндекс.Диск. Номер порта вручную вводить не нужно, достаточно выбрать пит протокола Безопасный WebDAV (https). В качестве адреса сервера вводим webdav.yandex.ru. Можно поставить галку Запомнить пароль, чтобы не приходилось вводить пароль каждый раз при потере авторизации, но это на любителя.



Если все данные были заполнены верно, то после прохождения процедуры авторизации попадаем в своё хранилище Яндекс.Диск



Хорошо заметно, что в левой колонке появилась строчка WebDAV с характерным значком отсоединения.

Для проверки работы интеграции закинул произвольный имеющий у меня файл



Теперь со своим хранилищем Яндекс.Диск можно работать словно со своим локальным диском, во всяком случае логически.  :)

Что касается отсоединения от своего удалённого хранилища, то достаточно щёлкнуть на значок выброса носителя, или же воспользоваться контекстным меню с помощью ПКМ на строчке WebDAV на webdav.yandex.ru.



Аналогично проводится подключение к Яндекс.Диск из других дистрибутивов линукс с Gnome/Unity.

Оффлайн skylexusАвтор темы

  • Администратор
  • *****
  • Сообщений: 6890
  • Зеркала небес взгляд мой отражают
    • о спутниковой рыбалке и интернете
  • DVB: 3G
  • Спутник: 7E,36E,60E
Яндекс.Диск и Google Drive в Linux
« Ответ #2 : 21 Август 2012, 22:09 »
Подключение к Яндекс.Диск под Linux в KDE с помощью Dolphin

Надо сказать, что KDE смотрится несолько богаче в плане вариантов подключения к Яндекс.Диск. Традиционно начинаем с коннекта к Яндекс.Диск файловым менеджером, коим для KDE штатно является Dolphin. У меня установлен дистрибутив Fedora именно с KDE, на нём и буду подключаться.  :)

В отличие от Nautilus в Gnome/Unity, подключение к Яндекс.Диск файловым менеджером Dolphin начинается не с меню, а сразу из адресной строки. В качестве адреса нужно указать webdav.yandex.ru с явно обозначенным префиксом протокола, т.е.

webdavs://webdav.yandex.ru


После этого будет запрошены данные для авторизации, указываем логин и пароль от Яндекс.Диск



Если процесс авторизации пройдёт удачно, то увидим в окне Dolphin содержимое своего диска от Яндекс



Всё, теперь можно работать с удалёнными файлами, как лежащими у себя на винте.  :good:

В отличие от подключения к Яндекс.Диск с помощью Nautilus, описанного в прошлом посте, в левой части файлового менеджера  Dolphin пункта с Яндекс.Диск не появляется. :(

Оффлайн skylexusАвтор темы

  • Администратор
  • *****
  • Сообщений: 6890
  • Зеркала небес взгляд мой отражают
    • о спутниковой рыбалке и интернете
  • DVB: 3G
  • Спутник: 7E,36E,60E
Яндекс.Диск и Google Drive в Linux
« Ответ #3 : 21 Август 2012, 22:18 »
Подключение к Яндекс.Диск под Linux в KDE с помощью Konqueror

Как должно быть понятно, подключение к Яндекс.Диск с помощью браузера, наподобие описанного в описании сервиса, в общем случае не производит интеграции с ОС. Вы можете войти в сервис и провести настройки, но не можете перекмдывать туда-сюда файлы через браузер, будь то Firefox или Opera. В этом плане входящий в KDE браузер Konqueror стоит особняком, потому как он умеет работать по протоколу webdav.  :) Тут особо объяснять ничего не нужно, достаточно привести несколько скриншотов, выполненых в Fedora 17.







На этом с подключением к  Яндекс.Диск из среды KDE не заканчивается, продолжение следует.

Оффлайн skylexusАвтор темы

  • Администратор
  • *****
  • Сообщений: 6890
  • Зеркала небес взгляд мой отражают
    • о спутниковой рыбалке и интернете
  • DVB: 3G
  • Спутник: 7E,36E,60E
Яндекс.Диск и Google Drive в Linux
« Ответ #4 : 21 Август 2012, 22:51 »
Подключение к Яндекс.Диск под Linux с KDE с помощью Krusader

На очереди подключение к Яндекс.Диск под KDE, но уже файловым менеджером Krusader. Это уже интересней, т.к. Krusader по умолчанию уже является двухоконным и напоминает чем-то Total Commander под винду.  ;D

В  Krusader имется пункт меню Сетевое соединение для подключения по разным протоколам.





Однако если всмотреться внимательнее, то среди них webdav не значится. Как бы мы ни крутили, а с помощью этого меню подключиться к Яндекс.Диск не удастся.  :no:



Но у Krusader есть другая замечательная возможность - указать адрес протоколом прямо в строке пути. Жмём Enter.



После выполения авторизации в панели Krusader оказывается содежимое яндекс.диска.







Коннект с Яндекс.Диск выполнен, можно работать с удалёнными файлами, тем более двухоконный интерфейс только в помощь.  :)


Во всех этих подключениях мне не нравится одна вещь: нет кнопки отключения от диска яндекса.  :( Я как-то привык выполнять дисконнект в явном виде, а не оставлять соединение открытым. Здесь же подключение запрашивается заново, если либо будут вытерты кукисы, либо будет закрыто приложение, из которого выполнялось подключение. Не нравится мне это, а может просто чего не знаю.  ???

На этом с Яндекс.Диск в линуксе не прощаюсь, впереди, пожалуй, самое интересное.  ;)

Оффлайн skylexusАвтор темы

  • Администратор
  • *****
  • Сообщений: 6890
  • Зеркала небес взгляд мой отражают
    • о спутниковой рыбалке и интернете
  • DVB: 3G
  • Спутник: 7E,36E,60E
Яндекс.Диск и Google Drive в Linux
« Ответ #5 : 25 Август 2012, 13:22 »
Подключение к Яндекс.Диск под Linux с помощью файловой системы Davfs2

В противовес описанному выше подключению к Яндекс.Диск из конкретных приложений через WebDAV, явно заслуживает внимания монтирование своего хранилища в Яндекс посредством файловой системы Davfs2. В результате с содержимым диска можно работать как с любыми другими файлами, находящимися на своём локальном диске. Причём в случае монтирования с помощью файловой системы, пользователь получает возможность работать с удалёнными файлами независимо от используемых приложений, при этом всё происходит совершенно прозрачно для пользователя. Кроме того, имеется возможность сконфигурировать автоматическое монтирование хранилища Яндекс.Диск при загрузке своей системы Linux.

Демонстрировать буду на примере Ubuntu 10.04.3 LTS, хотя под рукой имеется и более новый 12.04 LTS с Unity. :facepalm:

Как обычно, чтобы смонтировать диск, нужно подготовить для этого директорию. Вопреки встречающимся в блогах примерам, такую директорию создам не в директории /mnt, а в своём домашнем каталоге.

mkdir ~/ya.disk
В результате в меня появляется директория, имеющая абсолютный путь /home/lexus/ya.disk .

Теперь мы должны установить на свой Linux пакет для поддержки файловой системы Davfs2. Для убунты пакет находится в стандартном репозитории, поэтому в список реп ничего добавлять не нужно. Просто выполняем

sudo apt-get install davfs2
Во время установки пакета davfs2, вывод у меня выглядел следующим образом

lexus@u10043:~$ sudo apt-get install davfs2
[sudo] password for lexus:

Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  linux-headers-2.6.32-33-generic linux-headers-2.6.32-33
  linux-headers-2.6.32-41 linux-headers-2.6.32-41-generic
Для их удаления используйте 'apt-get autoremove'.
НОВЫЕ пакеты, которые будут установлены:
  davfs2
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 151kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 483kB.
Получено:1 http://archive.ubuntu.com/ubuntu/ lucid/universe davfs2 1.4.5-1 [151kB]
Получено 151kБ за 0с (323kБ/c)
Предварительная настройка пакетов ...
Выбор ранее не выбранного пакета davfs2.
(Чтение базы данных ... на данный момент установлено 192637 файлов и каталогов.)
Распаковывается пакет davfs2 (из файла .../davfs2_1.4.5-1_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет davfs2 (1.4.5-1) ...

lexus@u10043:~$

После установки пакета davfs2 обращает на себя внимание появление одноимённой папки в директории /etc.



Заходим в эту папку и видим, что среди прочего здесь имеется некий файл secrets, помеченный характерным значком при просмотре из наутилуса, запущенного под обычным пользователем.



Итак, у нас есть папка для монтирования, есть установленный пакет davfs2, поэтому в принципе уже можно провести пробное монтирование своего Яндекс.диска, естественно под суперпользователем. Но при монтировании нужно указывать в командной строке параметры авторизации, а это не только не удобно, но ещё и небезопасно (хистори и пр.). Вот как раз тут-то нам и поможет файл /etc/davfs2/secrets . Этот файл не доступен даже на чтение для рядового пользователя, именно туда мы и загоняем параметры авторизации своего  Яндекс.диска. Можно из-под суперпользователя выполнить

# echo "https://webdav.yandex.ru:443 логин_янедксдиска пароль_яндексдиска" >> /etc/davfs2/secrets
а можно воспользоваться текстовым редактором

sudo gedit /etc/davfs2/secrets
и внести соответствующую строку с авторизационными данными, не забыв сохранить изменения.

Вот теперь производим тестовое монтирование диска яндекс. Поскольку мне приходилось выполнять подряд несколько действий из-под суперпользователя, то для удобства сразу перешёл в терминале в его режим.

#mount -t davfs https://webdav.yandex.ru /home/lexus/ya.disk
Смотрим, что у нас творится с примонтированным разделом (эту команду можно выполнять и из-под обычного пользователя)

df -h /home/lexus/ya.disk
df -h /home/lexus/ya.disk
Файловая система            Разм  Исп  Дост  Исп% смонтирована на
https://webdav.yandex.ru 10G  8,4M   10G   1% /home/lexus/ya.disk

Видно, что хранилище яндекс.диск успешно примонтировалось к папке /home/lexus/ya.disk  :good:

Если сейчас посмотреть на директорию /home/lexus/ya.disk из Nautilus, запущенного под обычным пользователем, то обращают на себя внимание имеющиемя ограничения (замкИ, кресты...  ;D ).







И действительно, на диск хрен чего закинешь, если только конечно не производить это из приложения, запущенного под суперпользователем. При запущенном от имени обычного пользователя наутилусе даже пункт Вставить из контекстного меню бет серым (не активным). Всё правильно, мы ведь монтировали папку под суперпользователем, поэтому у неё после монтирования и получаются такие права, несмотря на то, что создавали её от имени обычного пользователя.






Отсоединить яндекс.диск из контекстного меню проводника тоже не получится. Вернее, пункт-то есть, прав нет.  :)



Хотя под суперпользователем отмонтирование диска выполняется как отче наш

root@u10043:~# umount /home/lexus/ya.disk
/sbin/umount.davfs: waiting while mount.davfs (pid 2375) synchronizes the cache .. OK
root@u10043:~#

Поскольку диск удалённый, то процессс отмонтирования может занимать достаточно продолительное время, пока не выполнится полностью вся синхронизация.

С одной стороны у нас уже что-то получилось, с другой стороны совершенно не возможно работать в таких условиях.   ;D Однако никто не мешает смонтировать из-под рута наш диск, указав при этом другого "хозяина" в виде пользователя и его группы.

sudo mount -t davfs -o uid=lexus,gid=lexus https://webdav.yandex.ru /home/lexus/ya.disk
Вот теперь уже лучше, и диск доступен не только на чтение, но и на запись.





Для пущей важности закинул на свой яндекс.диск книженцию...  :)



Всё это уже хорошо, но можно ли заставить монтироваться диск автоматом при загрузке ОС Linux? Да запросто! Например, можно засунуть соответствующую команду в стартовый скрипт /etc/rc.local. Для этого открываем на редактирование данный файл

sudo gedit /etc/rc.local
и перед строкой exit 0 вписываем цепочку команд:

sleep 90 && mount -t davfs -o uid=lexus,gid=lexus https://webdav.yandex.ru /home/lexus/ya.disk
Команда sleep 90 указывает на необходимость задержки (в данном случае 90 секунд). Дело в том, что наше подключение к Яндекс.диск возможон только после запуска сети, поэтому мы и делаем такую паузу. Если по каким-то причинам 90 секунд будет не достаточно, то можно увеличить время, например, до 120 секунд.

Всё, теперь после загрузки системы хранилище Яндекс.диск монтируется автоматом.

А для чего же, спросите вы, наш замечательный файл /etc/fstab??? Действительно, вместо немного надуманного варианта со стартовым скриптом можно воспользоваться и возможностями файла /etc/fstab ! Причём в зависимости от постановки задачи можно не только сделать автоподклчение к Яндекс.диск, но и банально упростить команду mount, указав параметры монтирования в файле /etc/fstab.

К примеру, строка в /etc/fstab для монтирования хранилища может выглядеть так:

https://webdav.yandex.ru:443 /home/lexus/ya.disk davfs uid=lexus,file_mode=640,dir_mode=755,user,_netdev 0 0
Как обычно, параметры авторизации у нас хранятся в файле /etc/davfs2/secrets  ;) .

Обращаю внимание на опцию _netdev , заставляющую дождаться поднятия сетевого интерфейса. Среди опций для монтирования я определил ещё опицию user, позволяющую монтировать диск не только от имени суперпользователя, но и от имени lexus в данном случае. Если же хотите, чтобы монтирование мог производить вообще любой пользователь, то вместо user можно указать users. Но оно мне не надо, оставляю так.  :)

Вообще, строку монтирования можно переиначать на свой лад, почитайте маны к fstab и mount, наверняка найдёте много полезного.  ;)

Да, ещё нужно добавить нашего пользователя в группу davfs2 для возможности монтирования с помощью ФС davfs2:

sudo usermod -a -G davfs2 lexus
Казалось бы, пользователь lexus теперь имеет право выполнить команду mount применительно к яндекс.диску, поскольку так прописано в файле /etc/fstab. Однако на деле мы получаем небольшой обломс :( .

Дело в том, что при монтировании файловой системы davfs2 используется бинарник /usr/sbin/mount.davfs, а на него права выглядят не совсем должным образом. Иправляем ситуацию:

sudo chmod u+s /usr/sbin/mount.davfs
Вот теперь монтировать наш Яндекс.диск сможет и пользователь lexus без повышения своих привилегий

$ mount /home/lexus/ya.disk
Соответственно, он же сможет этот диск и размонтировать. Обращаю внимание, что пользователь сможет размонтировать диск, если он же  его и монтировал. Если монтировал суперпользователь, то отмонтровать рядовой юзер не сможет.

Если вы всё делали, как говорится выше, то у вас теперь диск от яндекса должен подмонтироваться не только при начальной загрузке ОС, но и при любом запросе к данному устройству. Отключать диск можно как командой umount, так и по щелчку на значке выброса или из контекстого меню.






 

Похожие темы

  Тема / Автор Ответов Последний ответ
32 Ответов
3637 Просмотров
Последний ответ 31 Май 2012, 13:59
от GroN
19 Ответов
2161 Просмотров
Последний ответ 22 Февраль 2012, 11:41
от skylexus
17 Ответов
5159 Просмотров
Последний ответ 16 Июль 2012, 20:36
от ALENA


При использовании материалов форума ссылка на форум обязательна.

Rambler's Top100