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 次下载

MIT 许可证

98KB
2K SLoC

Build Status Crates.io Docs
GitHub Issues Downloads MIT License

GCSF 是一个虚拟文件系统,允许用户将 Google Drive 账户本地化,并将其作为常规磁盘分区进行交互。您可以在这篇论文中了解更多信息

更新(2019 年 4 月):我目前仍在使用和维护此项目,但我为此项目投入的时间非常有限。因此,修复已知错误/实现功能请求/响应开放问题可能需要一些时间。感谢您的理解和对此项目的持续关注!

需求

GCSF 需要 Rust 编程语言的稳定分支,可以按照 rustup.rs 上的说明进行安装。如果您已经安装了 Rust,请确保已更新到最新版本(≥1.26)

$ rustup update stable

OSX

在 Mac OSX 上,GCSF 需要 osxfusepkg-config

$ brew update; brew install pkg-config; brew tap homebrew/cask; brew install --cask osxfuse

Ubuntu

在 Ubuntu 上,GCSF 需要 libfuse-devlibssl-devpkg-config

sudo apt-get install -y libfuse-dev libssl-dev pkg-config

Arch Linux

axionl 维护的 AUR 包:gcsf-git

SUSE

sudo zypper install -y fuse-devel fuse rust pkgconf-pkg-config

其他 Linux 发行版

请确保已安装 pkg-configfuse 库。这些通常可以在主要发行版的软件仓库中找到。

FreeBSD

可以通过 lang/rust 端口安装 Rust。您需要安装 sysutils/fusefs-libs 以成功执行 cairo install 命令。

Windows

遗憾的是,目前不支持 Windows。请参阅问题 #19

安装

满足所有要求后,可以使用 cargo 安装 GCSF

$ cargo install gcsf

这将生成位于 $HOME/.cargo/bingcsf 二进制文件。请确保此目录包含在您的 PATH 环境变量中: export PATH=$PATH:$HOME/.cargo/bin

或者,您可以下载适用于您平台的发布版本二进制文件

配置

GCSF 将尝试在 $XDG_CONFIG_HOME/gcsf/gcsf.toml 中创建一个配置文件,它通常被定义为 $HOME/.config/gcsf/gcsf.toml。凭据存储在同一目录中。

GCP

  1. 访问 console.developers.google.com 并创建一个新的项目
  2. 将 Google Drive API 添加到项目中
  3. 配置 OAuth 同意屏幕。不需要验证。除非此项目是 GSuite 内部的内部项目,否则应为外部配置
  4. 配置 OAuth2.0 凭证。如果将 gcsf 添加到无头服务器,请勿使用 WEB 作为令牌类型 - 您希望使用 urn:* URI(注意:如果使用 WEB,则需要将接受域名设置为包括 http://127.0.0.1:8081
  5. 配置 GCSF 使用新的 client_idclient_secretproject_id。创建凭据后,您应该拥有所有这些值。
  6. 如果您正在为无头服务器配置,请配置 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 账户的内容

GCSF ls

使用 Ranger

GCSF in Ranger

或 Thunar

GCSF in 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