Ошибка синхронизации синхронизации, возможно Google API Shift
У меня проблемы с синхронизацией с моей учетной записью Google Drive из Grive, работающей на Ubuntu 14.04. У меня никогда не было проблем раньше. Я попытался очистить диск от своей системы и удалить все локальные папки, но все еще сталкивался с этим при попытке запустить grive после переустановки.
user@user-OptiPlex-780:~/drive$ grive
grive: Symbol `json_tokener_errors' has different size in shared object, consider re-linking
Reading local directories
Synchronizing folders
exception: /build/buildd/grive-0.2.0/libgrive/src/http/CurlAgent.cc(149): Throw in function long int gr::http::CurlAgent::ExecCurl(const string&, gr::http::Receivable*, const gr::http::Header&)
Dynamic exception type:boost::exception_detail::clone_impl<gr::http::Error>
std::exception::what: std::exception
[gr::expt::MsgTag*] =
[gr::http::CurlCodeTag*] = 0
[gr::http::HttpResponseTag*] = 400
[gr::http::UrlTag*] = https://docs.google.com/feeds/default/private/full/-/folder?max-results=50&showroot=true
[gr::http::HeaderTag*] = Authorization: Bearer ya29.WwFOho3OkmkxFIdn86HBbtpSIyBYDzDgQua1K6JcEu7kCBLgvY1aEiUHCZlSCuli_qPHkTfNZLhDfQ
GData-Version: 3.0
Вот ссылка на страницу разработчиков Google, которая предполагает, что API изменил ссылку сегодня. это может быть проблемой?
9 ответов
Да, Grive использует API несуществующего списка документов. Примерно в 9 утра по тихоокеанскому времени мы перестали обслуживать эти запросы API. Вот почему клиент Grive получает ответы "400 Bad Request".
Глядя на проект, он, кажется, не поддерживается почти год и определенно не был обновлен ( здесь и здесь) до нового API, который был выпущен в 2012 году, когда список документов был официально объявлен устаревшим.
Хорошей альтернативой может быть диск, который написан на go
и имеет довольно много функций.
Для установки следуйте этим инструкциям:
Установите необходимые пакеты
sudo apt-get install golang git mercurial
Создать путь для
go
пакеты в вашем домашнем каталогеmkdir $HOME/go $HOME/go/bin
Добавьте эти пути к соответствующим переменным среды, отредактировав файл
.profile
в вашем домашнем каталоге. Так что добавьте эти строки в и этого файла:if [ -d "$HOME/go" ] ; then export GOPATH="$HOME/go" fi if [ -d "$HOME/go/bin" ] ; then PATH="$HOME/go/bin:$PATH" fi
Выйдите и войдите, чтобы изменения вступили в силу.
Загрузить и установить
drive
из последнего источникаgo get -u github.com/odeke-em/drive/cmd/drive
Прочитайте https://github.com/odeke-em/drive/
Основное использование:
drive init <folder>
инициализирует<folder>
для синхронизации с вашим Google Drive.- Если вы делаете
drive pull
в вашу инициализированную папку, он загрузит все изменения с Google Drive. В первый раз, возможно, вам придется сделать это еще раз, чтобы загрузить все. drive push
загружает локальные изменения.drive pull <fileOrPath>
или жеdrive push <fileOrPath>
выполняет соответствующее действие только для<fileOrPath>
,- Есть много других вариантов использования, поэтому прочитайте руководство.
Была сделана развилка грива, которая снова работает (не мной, только что нашел)
https://github.com/vitalif/grive2
Простая замена
mkdir grive
cd grive/
git clone https://github.com/vitalif/grive2.git
cd grive2/
mkdir build
cd build
cmake ..
make -j4
sudo make install
Теперь у меня отлично работает грива.
Решение, похожее на grive, - это jdrivesync. Вы можете скачать копию на странице GitHub.
Для запуска jdrivesync выполните следующие действия:
- Установить Java
- Скачать jdrivesync
- Запустить его с
java -jar jdrivesync-0.2.2-jar-with-dependencies.jar -l "/home/directory-to-sync"
Пакет grive в Ubuntu 14.04 только что обновлен до Grive2 версии 0.4.0-1. У меня была та же проблема, что и у вас до обновления, но я попытался синхронизировать это утро с обновлением, и оно работает.
Инструкции по простой установке grive2 0.4.0-1 в Ubuntu 14.04 и grive2 во всех других поддерживаемых в настоящее время версиях Ubuntu см. В этом ответе. Следует отметить, что команда sudo apt-get install grive
в связанном ответе правильный, потому что после добавления PPA он действительно установит grive2, который работает вместо старой не обновленной версии grive, которая больше не работает.
Вы можете использовать пакетgrive2 из GitHub
Монтаж
sudo apt-get install git cmake build-essential libgcrypt11-dev libyajl-dev libboost-all-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-dev
Я также нуждался в них, которые не перечислены на странице пакета github.
sudo apt-get install debhelper pkg-config zlib1g-dev
Также это не сработало:
dpkg-buildpackage -j4
Я получил эту ошибку:
dpkg-buildpackage: error: failed to sign .dsc and .changes file
Это сработало вместо:
sudo dpkg-buildpackage -uc -us
Или работала и ручная сборка:
mkdir build
cd build
cmake ..
make -j4
sudo make install
использование
Для синхронизации необходимо запустить программу вручную (пока нет "просмотра в реальном времени"). В командной строке введите:
cd /home/yourUsername/GoogleDrive/
Если это ваш первый раз, запустите это:
sudo grive -a
иначе запустите это:
sudo grive
Вы можете настроить работу cron, если хотите, чтобы она выполнялась регулярно.
Источник: http://yourcmc.ru/wiki/Grive2
Попробуйте этот https://github.com/astrada/google-drive-ocamlfuse, он несколько медленный, так как синхронизирует файлы сразу во время сохранения, а также конвертирует документы и листы Google в открытые офисные форматы (odt & ods), но в режим только для чтения,
Это также может быть альтернативой, хотя я пока немного поиграл с ней.
Это открытый исходный код, написанный на Go. Можно как синхронизировать, так и копировать.
Вывод странный, и нужно быть осторожным, чтобы не удалить данные командой sync.
Гриве было намного проще в использовании, но он кажется мертвым.
Еще одна интересная альтернатива может быть эта:
Insynchq прекрасно работает для меня. Но я только что нашел это: https://www.thefanclub.co.za/overgrive