1 个不稳定版本

0.1.0 2020年2月14日

#2084数据库接口

MIT 协议

37KB
682

Google Drive 高级

用于操作 Google Drive 的高级开发和审计工具。

功能

  • 审计所有文件 -- 包括文件信息、权限和文件之间的父子关系。写入可配置的 PostgreSQL 数据库。
  • 获取树形文件夹结构,并允许通过 SQL 查询树形结构。

待添加

  • 列出活动日志项
  • 跨域/多个域的所有用户列出
  • 异步调用以提高性能
  • 可能具有在驱动器文件上执行某些操作的工具(待定)

关于 Google Drive

Google Drive 并不是精确的树形结构。与传统的 Unix 或 Windows 文件系统不同,文件可以有多个父级,即它们可以同时存在于多个位置。

与传统文件系统不同,权限不是立即从父文件夹继承。这意味着如果我为文件添加权限,它需要一些时间才能传播到其子项。

必须将 Google Drive 视为整个 Drive 宇宙,而不仅仅是单个用户驱动器。文件可以继承用户不一定知道的文件的权限。文件可以有特定于单个用户账户的父级。

安装

安装以下依赖项

  • openssl
  • postgresql

安装 Cargo/Rust

cargoinstall --githttps://github.com/Cloudbakers/drive-adv

配置

Drive Advanced 可以与提供对域中所有用户访问的服务帐户以及使用“离线 OAuth”的单独用户帐户一起工作(实际上没有更好的术语)。

在项目中启用 Drive API。

对于服务帐户身份验证,请在此处授予服务帐户访问您的 Google Drive 域的权限 这里

我们需要的范围是 drive.readonly 范围。

配置通过环境变量完成。有关示例,请参阅 sample_env 环境变量中服务帐户的路径

要使用个人用户离线OAuth,获取离线OAuth刷新令牌,例如使用AGM (~agm --run-oauth --scopes [scopes] --email [your email]然后复制路径/home/.agm/oauth_credentials/[your email].json到环境变量DRIVE_ADV_OFFLINE_OAUTH。设置此变量将中断服务账户认证 - 在运行命令时选择一个。

创建并设置你的数据库。我们需要添加Ltree扩展来运行查询。

sudo -u postgres createdb drive_adv

sudo -u postgres drive_adv -d drive_sandbox -c "create extension ltree"

DATABASE_URL设置为postgresql连接字符串URL。文件sample_env提供了你需要设置的示例环境变量。

Drive Advanced允许你查询Drive文件树 - 运行sql脚本sql/create_filetree来设置此功能。在大型文件系统上这可能需要一些时间。

用法

使用drive_adv --help获取命令行界面

首先,使用drive_adv list命令列出数据库中所有相关用户的文件。这将写入你设置的PostgreSQL数据库。然后,你可以查询此数据库以获取有关Drive环境的任何所需信息。一些示例查询在sql/中存在。

贡献

欢迎所有水平用户的贡献、错误报告、问题和反馈! :)

依赖项

~17–33MB
~656K SLoC