Пропускане към основното съдържание

Синхронизиране на Google Drive с локалния компютър: Gdrive FS

 




 

 

For Linux

Google Drive isn't currently available for the Linux operating system. Linux users can still access Google Drive on the web – drive.google.com or through the Google Drive mobile app.



Връзката между локалния компютър и Google Drive освен с Grive може да се извърши и чрез монтиране да облачната услуга като локален твърд диск. В този случай не можем стриктно да говорим за синхронизиране, а за директна работа с диска, като след затваряне на връзката в домашната ни директория не остава локално копие на данните както при Grive.


  1. Добавяме хранилището на Лука Инверници:

sudo add-apt-repository ppa:invernizzi/google-docs-fs



gpg: keyring `/tmp/tmp0lIjHD/secring.gpg' created

gpg: keyring `/tmp/tmp0lIjHD/pubring.gpg' created

gpg: requesting key 8E9775D1 from hkp server keyserver.ubuntu.com

gpg: /tmp/tmp0lIjHD/trustdb.gpg: trustdb created

gpg: key 8E9775D1: public key "Launchpad Getting things GNOME! daily ppa" imported

gpg: Total number processed: 1

gpg:               imported: 1  (RSA: 1)

OK



  1. След това обновяваме инсталацията и инсталираме GdriveFS:

sudo apt-get update && sudo apt-get install google-docs-fs



  1. Създаваме в домашната си папка нова директория с произволно име, напр. „gd“. Под това име ще се появи след монтирането новия ни „твърд диск“.
  2. Изпълняваме в терминал като стандартен потребител:

gmount gd username@gmail.com



Ще се наложи да въведете паролата си за Google профила си, като при това няма да има ехо. Не е необходимо да изписвате целия път към директорията, но е добра практика, т. е. в командата вместо gd да използвате /home/my_user/gd, където my_user е името, с което влизате в системата. username е името, с което влизате в профила си в Google. Използването на входна точка в /media или /mnt не е много добра идея поради правата за ползването им.
Ако използвате съществуваща папка, в която има някакви данни (вкл. „скрити“ файлове .file), ще получите съобщение:

fuse: mountpoint is not empty

fuse: if you are sure this is safe, use the 'nonempty' mount option

Traceback (most recent call last):

 File "/usr/share/google-docs-fs/gmount.py", line 7, in <module>

    gFile.main()

 File "/usr/share/google-docs-fs/googledocsfs/gFile.py", line 552, in main

    gfs.main()

 File "/usr/lib/python2.6/dist-packages/fuse.py", line 754, in main

    main(**d)

fuse.FuseError: filesystem initialization failed



Документацията е доста оскъдна, затова не търсих дълго как да въведа nonempty опцията, а си създадох нова празна входна точка.
  1. Приложението работи добре и не е зависимо от файловия мениджър, който ползвате, тъй като се интегрира като стандартен ОС драйвер. В /etc/mtab се появява запис за диска, който изглежда така (на един ред):

gmount.py /home/my_user/gd fuse.gmount.py rw,nosuid,nodev,user=my_user 0 0



  1. Въпреки, че срещу името на новия диск има стрелкичка за отмонтиране, не можете да я използвате (нито десен клавиш), защото ще получите съобщение за грешка, че „дискът не е в fstab или вие не сте root“. За да отмонтирате коректно диска трябва да изпълните в терминал командата:

gumount gd



  1. Ако не желаете ръчно да въвеждата команди и паролата си при монтиране на услугата, можете да преработите (като root) файла /usr/share/google-docs-fs/googledocsfs/gFile.py, като добавите следните редове на ред 543, т. е. след текста „passwd = None“ и преди „while not passwd:“:

### begin of added code

   home = os.path.expanduser("~")

   pwdpath = os.path.join(home,".gpasswd")

   if os.path.exists(pwdpath):

       pfile = open(pwdpath, 'r')

# you could use codecs.open(pwdpath, 'r', 'utf-8' if non-ascii characters are used in password

       passwd = pfile.read().strip()

       pfile.close()

       if len(passwd) == 0:

           passwd = None

       ### end of added code

Важно: Python ще генерира съобщение за IndentationError, ако в оригиналния файл са използвани за структуриране табулатори, а в прибавения текст те са заменени с интервали! Затова копирайте „празното“ пространство (отстъпа) от оригиналния текст и го добавете пред всеки ред на новия!
Направете си в домашната директория скрит файл с име, описано на края на третия ред на добавения текст, напр. .gpasswd. Някои текстови редактори не могат да записват „точкувани“ файлове, затова използвайте в терминал командата:

touch .gpasswd



Сега вече можете да редактирате файла и да добавите в него паролата си за Google профила си и да монтиране диска с командата от т. 4 или със скрипт, стартиращ се със старта на системата, без да се налага да въвеждате всеки път парола.


GdriveFS има някои предимства сравнено с Grive:
1. Работите директно с облачната услуга, без да се налага изрична синхронизация.

Неудобства:
1. Необходима ви е постоянна интернет връзка, като нямате локално копие да документите си от Google Drive.
2. Ако не сте извършили описаната в т. 7 модификация на кода, ще се налага всеки път да въвеждате парола, което освен досадно, е свързано и с възможни грешки. Удостоверяването на потребителя при Grive е по-елегантно решено.
3. Зареждането на GDriveFS със стартирането на системата блокира зареждането на стандартния fuse драйвер и автоматичното монтиране на сменяеми носители става невъзможно. Те не се показват и десния панел (F9) на Nautilus като съществуващи, но не монтирани. За радост те се показват в служебната папка Computer, откъдето могат да се монтират в графична среда. Това се решава, като се въведе определено забавяне при монтирането на GDriveFS, за да има време да се заредят останалите драйвери коректно. Аз съм сложил забавяне от 3 минути, като при сатриране на компютъра вместо самата команда се изпълнява скрипт:
sh -c "sleep 3m && gmount /home/my_user/gd/ username@gmail.com"

4. Копирането на файлове от един и същи разпознаваем тип (напр. текстови документи) с еднакво име и различни разширения е невъзможно: след копиране на файл test.doc (Word) при опит за копиране на файл test.odt (Writer) води до генериране на съобщение за съществуващ файл, докато качването им в Google Drive през web интерфейса е безпроблемно.
5. Копирането/преместването/триенето на файлове води често до зомбиране на Nautilus и невъзможност за довършване на операцията. В този случай използвам:
$ ps auxwwf|grep nauti
my_user     1623  0.2  0.0      0     0 ?        Zl   10:13   0:22              \_ [nautilus] <defunct>
my_user     4840  0.0  0.0   3340   800 pts/0    S+   13:14   0:00      \_ grep --color=auto nauti

$ ps -p 1623 -o ppid
 PPID
 1546
$ kill -17 1546


6. За разлика от Grive можете да работите, поне на теория, и със създадените в Google Docs файлове, като те се разпознават като съответстващите им файлове от MS Office, т. е. .doc, .xls и т. н. Това вероятно е възможно с MS Office под Windows, но не и с Libre/OpenOffice:
- при опит за отваряне на таблица (.xls) грешката е:

- при опит за отваряне на текстови файл (.doc) грешката е:
Ако в Google Drive се изключи опцията за вътрешно преобразуване на файловете, то след качване на .odt/.ods/.doc/.xls файлове, те се отварят нормално от LibreOffice, докато не бъдат редактирани от web интерфейса. След това започват да се появяват съобщенията за грешки, посочени по-горе. Допълнителна „екстра“ блокирането на LibreOffice при затваряне, като процесът става собственост на init (ppid=1) не може да бъде убит, GdriveFS може да бъде отмонтиран, не може да бъде стартиран наново Nautilus или LibreOffice без рестрат на машината.

Като цяло съм разочаровон от GdriveFS и не я препоръчвам за постоянна/отговорна работа.


Източници:


Коментари

Популярни публикации от този блог

Проектиране на кемпер с VehiPlan

Оливер Колонж (Oliver Collonge) написва през 2011 г. втора версия на безплатната програма за дизайн на кемпери VehiPlan . Според автора тя е писана и трябва да работи под Windows 2000/Vista. Пробите показват, че работи нормално и под Windows 7 и 10. След като свалите архива (zip) можете да го разархивирате в C:\Windows\Program Files (x86)\. Програмата е с френски интерфейс и затова са необходими още няколко файла - vb6fr.dll , comdlg32.ocx & mscomctl.ocx . Тези файлове се поставят в C:\Windows\SysWOW64\. Comdlg.ocx се поставя в C:\Windows\System32\. След това е необходимо да се стартира Command Prompt (cmd - като администратор) и да се изпълни командата: regsvr32 %systemroot%\system32\comdlg32.ocx Ако възникне някакъв проблем, по-нова версия на файла може да се свали от тук . След това трябва да направим препратка към C:\Program Files (x86)\VehiPlan-2-0-0\VehiPlan.exe за по-удобно стартиране, която да поставим на работния плот или друго подходящо място. В архивния файл на програмат...

Диаграма на Гант с електронна таблица

Диаграмата на Гант се състои от ленти, ориентирани успоредно на времевата ос. Всяка лента представлява отделна задача в проекта (вид работа), краищата ѝ — началния и крайния момент на изпълнението  ѝ, а дължината ѝ - продължителността на задачата. Тези диаграми могат да се използват и за други, не точно производствени, цели - например да покажат заетостта на учебна зала. Когато представянето на данните е регулярна задача може да се използва специализиран софтуер като GanttProject, но за инцидентна визуализация можем да се справим с „подръчни средства“. Сега ще покажем как с електронна таблица (LibreOffice Calc) ще визуализираме времето, за което няколко служители са работили във фирмата: Изходните данни са в няколко колони: Продължителността на трудовия стаж в дни определяме с формулата D2=C2-B2, като я копираме за всеки последващ ред. На 6-и ред съответно с функцията MIN и MAX определяме минимална и максимална дата в таблицата, а на 7-и ред - записваме начална (1.1.198...

Основни разлики между IPv4 и IPv6

Основните разлики между IPv4 и IPv6 можем да разделим в няколко категории: Адреси Дължината на IPv4 адресите е 32 бита, докато на IPv6 - 128. Това дава възможност за адресиране на много повече крайни точки. Докато при IPv4 общият брой на адресите е 4 294 967 296, групирани в мрежи от клас A, B, C, D или E, то IPv6 уникалните адреси са 340 282 366 920 938 463 463 374 607 431 768 211 456, т. е. 79 228 162 514 264 337 593 543 950 336 пъти повече. Проста аналогия - ако адресното пространство на IPv4 е топка за пинг-понг, то на IPv6 е сфера с размера на Слънцето. При IPv6 вече не се ползва мрежова маска, както при IPv4, а адресен префикс. При IPv6 вече отпада необходимостта от NAT поради огромния брой свободни адреси. Конфигурация на адресите При IPv4 всяко ново устройство трябва да бъде предварително конфигурирано, за да бъде включено в мрежата. IPv6 позволява освен DHCP-подобна функционалност както при IPv4, така и SLAAC - автоматично преконфигуриране на мрежата чр...