Ошибка синхронизации grive, возможно изменение API Google

18

У меня возникла проблема с синхронизацией с моей учетной записью Google на жестком диске, запущенной на Ubuntu 14.04. Раньше у меня никогда не было проблем. Я попытался очистить диск от своей системы и удалить все локальные папки, но все равно придумываю это, когда пытаюсь запустить grive после переустановки.

[email protected]:~/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 сегодня изменился ссылка . это может быть проблемой?

    
задан LeoAnth 20.04.2015 в 20:31
источник

9 ответов

18

Да, Grive использует несуществующий API-список документов. По состоянию на 9 утра PST мы перестали обслуживать эти запросы API. Вот почему клиент Grive получает ответы «400 Bad Request».

Посмотрев проект , он выглядит как не поддерживается в течение почти года и определенно не обновлен ( здесь & amp; здесь ) к новому API, который был выпущен в 2012 году, когда Список документов официально устарел.

    
ответ дан Dan McGrath 20.04.2015 в 21:28
источник
9

Хорошей альтернативой может быть диск , который написан в go и имеет довольно много функций.

Чтобы установить следующие инструкции:

  1. Установите необходимые пакеты

    sudo apt-get install golang git mercurial
    
  2. Создайте путь для пакетов go в вашем домашнем каталоге

    mkdir $HOME/go $HOME/go/bin
    
  3. Добавьте эти пути в соответствующие переменные среды, отредактировав файл .profile в своем домашнем каталоге. Поэтому добавьте эти строки в файл и из этого файла:

    if [ -d "$HOME/go" ] ; then
        export GOPATH="$HOME/go"
    fi
    
    if [ -d "$HOME/go/bin" ] ; then
        PATH="$HOME/go/bin:$PATH"
    fi
    
  4. Выйдите из системы и войдите в систему, чтобы изменения вступили в силу.

  5. Загрузите и установите drive из последнего источника

    go get -u github.com/odeke-em/drive/cmd/drive
    
  6. Прочитайте Ссылка

    Основное использование:

    • drive init <folder> инициализирует <folder> для синхронизации с вашим Google Диском.
    • Если вы выполнили drive pull в своей инициализированной папке, он будет загружать все изменения с Google Диска. В первый раз, возможно, вам нужно сделать это больше времени, чтобы загрузить все.
    • drive push загружает локальные изменения.
    • drive pull <fileOrPath> или drive push <fileOrPath> выполняет соответствующее действие только для <fileOrPath> .
    • Существует много других опций, поэтому прочтите руководство.
ответ дан mamoch 25.04.2015 в 10:56
5

Создана вилка grive, которая работает снова (не я, только что нашел)

Ссылка

Легкая замена

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 отлично работает для меня.

    
ответ дан Ric Ambridge 26.06.2015 в 09:07
3

Решение, подобное grive, jdrivesync . Вы можете загрузить копию на странице github.

Для запуска jdrivesync выполните следующие действия:

  1. Установите Java
  2. Загрузите jdrivesync
  3. Запустите его с java -jar jdrivesync-0.2.2-jar-with-dependencies.jar -l "/home/directory-to-sync"
ответ дан siom 03.05.2015 в 16:17
2

Ubuntu 14.04 grive пакет только что обновлен до версии Grive2 версии 0.4.0-1. У меня была такая же проблема, как и перед обновлением, но я попытался синхронизировать это утро с обновлением, и он работает.

Инструкции о том, как легко установить grive2 0.4.0-1 в Ubuntu 14.04 и grive2 во всех других поддерживаемых версиях Ubuntu, см. этот ответ . Следует отметить, что команда sudo apt-get install grive в связанном ответе правильная, потому что после добавления PPA она действительно установит grive2, которая работает вместо старой не обновленной версии grive, которая больше не работает.

    
ответ дан user218538 26.05.2015 в 05:40
2

Вы можете использовать пакет 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

else запустите это:

sudo grive

Вы можете настроить задание cron, если вы хотите, чтобы это выполнялось на регулярной основе.

Источник: Ссылка

    
ответ дан JedatKinports 28.04.2017 в 23:03
1

попробуйте Ссылка , он как-то медленный, так как он синхронизирует файлы сразу во время сохранения, он также преобразует google docs и sheets для открытия форматов офиса (odt & amp; ods), но в режиме только для чтения,

    
ответ дан Adham Saad 21.04.2015 в 11:40
0

Это тоже может быть альтернативой, хотя я пока играл с ней немного.

Ссылка

Это открытый исходный код, написанный на Go. Можно синхронизировать и копировать.

Вывод является странным, и нужно быть осторожным, чтобы не удалять данные с помощью команды sync.

Grive был намного проще в использовании, но он, кажется, мертв.

Еще одна интересная альтернатива может быть такой:

Ссылка

    
ответ дан Thomas 23.04.2015 в 09:17
-1

insynchq отлично работает для меня. Но я просто нашел это: Ссылка

    
ответ дан 3point0 06.11.2015 в 02:00