问题描述
我无法从运行在 Ubuntu 14.04 上的 grive 与我的谷歌驱动器帐户同步。我以前从来没有遇到过问题。我尝试从我的系统中清除驱动器并删除所有本地文件夹,但是当我在重新安装后尝试运行 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 今天已更改 link。这可能是个问题吗?
最佳办法
是的,Grive 使用的是已失效的文档列表 API。从太平洋标准时间上午 9 点左右开始,我们停止为这些 API 请求提供服务。这就是 Grive 客户端收到“400 Bad Request”响应的原因。
查看 project ,它似乎是 unmaintained for almost a year 并且绝对没有更新( here & here )到 2012 年正式弃用文档列表时发布的新 API。
次佳办法
一个好的替代方案可能是 drive,它是用 go
编写的,具有很多功能。
要安装,请遵循以下说明:
-
安装需要的包
\n
sudo apt-get install golang git mercurial\n
-
在您的主目录中为
go
包创建一个路径\n
mkdir $HOME/go $HOME/go/bin\n
-
通过编辑主目录中的文件
.profile
,将这些路径添加到适当的环境变量中。因此,在该文件的和处添加这些行:\n
if [ -d "$HOME/go" ] ; then\n export GOPATH="$HOME/go"\nfi\n\nif [ -d "$HOME/go/bin" ] ; then\n PATH="$HOME/go/bin:$PATH"\nfi\n
-
注销并重新登录以使更改生效。
-
从最新源下载并安装
drive
\n
go get -u github.com/odeke-em/drive/cmd/drive\n
-
读取 https://github.com/odeke-em/drive/#usage\n基本用法:\n
-
drive init <folder>
初始化<folder>
以与您的 Google 云端硬盘同步。 -
如果您在初始化文件夹中执行
drive pull
,它将从 Google 云端硬盘下载所有更改。第一次,您可能需要多次执行此操作才能下载所有内容。 -
drive push
上传本地更改。 -
drive pull <fileOrPath>
或drive push <fileOrPath>
仅对<fileOrPath>
执行相应操作。 -
还有更多选项可供使用,因此请阅读手册。
-
第三种办法
Grive 的一个 fork 又可以工作了(不是我做的,刚找到的)
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 对我来说很好用。
第四种办法
类似于 grive 的解决方案是 jdrivesync 。您可以在其 github 页面上下载副本。
要运行 jdrivesync,请执行以下步骤:
-
安装 Java
-
下载 jdrivesync
-
用
java -jar jdrivesync-0.2.2-jar-with-dependencies.jar -l "/home/directory-to-sync"
运行