24 次发布
0.2.4 | 2023 年 8 月 25 日 |
---|---|
0.2.3 | 2023 年 7 月 24 日 |
0.1.28 | 2020 年 4 月 12 日 |
0.1.25 | 2019 年 2 月 14 日 |
0.1.16 | 2018 年 7 月 27 日 |
#145 in 文件系统
每月 26 次下载
98KB
2K SLoC
GCSF 是一个虚拟文件系统,允许用户将 Google Drive 账户本地化,并将其作为常规磁盘分区进行交互。您可以在这篇论文中了解更多信息
更新(2019 年 4 月):我目前仍在使用和维护此项目,但我为此项目投入的时间非常有限。因此,修复已知错误/实现功能请求/响应开放问题可能需要一些时间。感谢您的理解和对此项目的持续关注!
需求
GCSF 需要 Rust 编程语言的稳定分支,可以按照 rustup.rs 上的说明进行安装。如果您已经安装了 Rust,请确保已更新到最新版本(≥1.26)
$ rustup update stable
OSX
在 Mac OSX 上,GCSF 需要 osxfuse 和 pkg-config
$ brew update; brew install pkg-config; brew tap homebrew/cask; brew install --cask osxfuse
Ubuntu
在 Ubuntu 上,GCSF 需要 libfuse-dev,libssl-dev 和 pkg-config
sudo apt-get install -y libfuse-dev libssl-dev pkg-config
Arch Linux
SUSE
sudo zypper install -y fuse-devel fuse rust pkgconf-pkg-config
其他 Linux 发行版
请确保已安装 pkg-config
和 fuse
库。这些通常可以在主要发行版的软件仓库中找到。
FreeBSD
可以通过 lang/rust
端口安装 Rust。您需要安装 sysutils/fusefs-libs
以成功执行 cairo install
命令。
Windows
遗憾的是,目前不支持 Windows。请参阅问题 #19。
安装
满足所有要求后,可以使用 cargo
安装 GCSF
$ cargo install gcsf
这将生成位于 $HOME/.cargo/bin
的 gcsf
二进制文件。请确保此目录包含在您的 PATH
环境变量中: export PATH=$PATH:$HOME/.cargo/bin
或者,您可以下载适用于您平台的发布版本二进制文件。
配置
GCSF 将尝试在 $XDG_CONFIG_HOME/gcsf/gcsf.toml
中创建一个配置文件,它通常被定义为 $HOME/.config/gcsf/gcsf.toml
。凭据存储在同一目录中。
GCP
- 访问 console.developers.google.com 并创建一个新的项目
- 将 Google Drive API 添加到项目中
- 配置 OAuth 同意屏幕。不需要验证。除非此项目是 GSuite 内部的内部项目,否则应为外部配置
- 配置 OAuth2.0 凭证。如果将
gcsf
添加到无头服务器,请勿使用 WEB 作为令牌类型 - 您希望使用urn:*
URI(注意:如果使用 WEB,则需要将接受域名设置为包括http://127.0.0.1:8081
) - 配置 GCSF 使用新的
client_id
、client_secret
和project_id
。创建凭据后,您应该拥有所有这些值。 - 如果您正在为无头服务器配置,请配置 GCSF
authorize_using_code=True
。如果您这样做,则在不同的浏览器中完成 OAuth 流程将为您提供可以提供给 GCSF 的代码。
此时运行 gcsf login some_session_name
应该显示包含您的 client_id
查询参数的 URL。
用法
第一步是登录到 Drive 并授权应用程序。必须提供会话名称
$ gcsf login some_session_name
Please direct your browser to https://accounts.google.com/o/oauth2/[...] and follow the instructions displayed there.
Successfully logged in. Saved credentials to "$HOME/.config/gcsf/some_session_name"
您还可以列出所有现有会话
$ gcsf list
Sessions:
- personal
- some_session_name
- work
然后挂载其中一个(或多个)
$ gcsf mount /mnt/gcsf -s some_session_name
INFO gcsf > Creating and populating file system...
INFO gcsf > File system created.
INFO gcsf > Mounting to /mnt/gcsf
INFO gcsf > Mounted to /mnt/gcsf
现在您可以在 /mnt/gcsf
中找到您的 Drive 账户的内容
使用 Ranger
或 Thunar
为什么是 GCSF?
GCSF 代表 "Google Conduce Sistem de Fișiere",从罗马尼亚语翻译过来是 "Google Drive 文件系统"。然而,GDFS 已经存在,因此它仍然是 GCSF。
故障排除
无法挂载到 $mountpoint
:操作不允许(os 错误 1)
此错误发生时,user_allow_other
未在 /etc/fuse.conf
中设置或文件权限不正确。通过运行(作为 root)修复它
# echo 'user_allow_other' >> /etc/fuse.conf
# chmod 644 /etc/fuse.conf
# sudo chown root:root /etc/fuse.conf
libssl.so.1.0.0
您已安装了预构建的二进制文件,但无法运行它。通过安装 rust 并从源代码构建来修复它。
贡献
欢迎贡献。文档可在 docs.rs/gcsf 上找到。您还可以通过报告或修复 问题 来提供帮助。
依赖项
~22–35MB
~551K SLoC