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.
- Добавяме хранилището на Лука Инверници:
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
- След това обновяваме инсталацията и инсталираме GdriveFS:
sudo apt-get update && sudo apt-get install google-docs-fs
- Създаваме в домашната си папка нова директория с произволно име, напр. „gd“. Под това име ще се появи след монтирането новия ни „твърд диск“.
- Изпълняваме в терминал като стандартен потребител:
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 опцията, а си създадох нова празна входна точка.
- Приложението работи добре и не е зависимо от файловия мениджър, който ползвате, тъй като се интегрира като стандартен ОС драйвер. В /etc/mtab се появява запис за диска, който изглежда така (на един ред):
gmount.py /home/my_user/gd fuse.gmount.py rw,nosuid,nodev,user=my_user 0 0
- Въпреки, че срещу името на новия диск има стрелкичка за отмонтиране, не можете да я използвате (нито десен клавиш), защото ще получите съобщение за грешка, че „дискът не е в fstab или вие не сте root“. За да отмонтирате коректно диска трябва да изпълните в терминал командата:
gumount gd
- Ако не желаете ръчно да въвеждата команди и паролата си при монтиране на услугата, можете да преработите (като 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 nautimy_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 и не я препоръчвам за постоянна/отговорна работа.
Като цяло съм разочаровон от GdriveFS и не я препоръчвам за постоянна/отговорна работа.
Източници:
Коментари
Публикуване на коментар