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

Синхронизиране на 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.1989) и

UHS: Разширение на мрежата с евтин рутер

Свързването на два (или повече) рутера в една локална мрежа увеличава броя на достъпните портове и служи за репликиране на wi-fi сигнала за по-пълно покритие на дома/офиса. Идеята е да се ползва евтин допълнителен рутер, чрез който с минимални капиталовложения можем да покрием цялото жилище/офис със сигнал с достатъчно високо качество. Връзката между двата рутера е по UTP кабел. Използването на новия рутер като безжична входна точка („AP“) е, както се казва, ,друга бира“ и ще бъде разгледана по-късно. В нашата имплементация ще използваме ADSL рутер Pirelli DRG A124G, стандартно доставян като крайно устройство от Виваком. Не знам каква е причината, но Мрежата е пълна с обяви за продажба на тези машинки на цена 5-10 лв.  Другият вариант е да се вземе някакъв рутер от вносителите на техника втора употреба от Западна Европа, но там обикновено липсват адаптерите и изобщо няма гаранция, че рутерът „ще запали“. Разбира се, съществува вариантът да се закупи и нов, но това за