1 个不稳定版本
0.1.0 | 2020年2月14日 |
---|
#2084 在 数据库接口
37KB
682 行
Google Drive 高级
用于操作 Google Drive 的高级开发和审计工具。
功能
- 审计所有文件 -- 包括文件信息、权限和文件之间的父子关系。写入可配置的 PostgreSQL 数据库。
- 获取树形文件夹结构,并允许通过 SQL 查询树形结构。
待添加
- 列出活动日志项
- 跨域/多个域的所有用户列出
- 异步调用以提高性能
- 可能具有在驱动器文件上执行某些操作的工具(待定)
关于 Google Drive
Google Drive 并不是精确的树形结构。与传统的 Unix 或 Windows 文件系统不同,文件可以有多个父级,即它们可以同时存在于多个位置。
与传统文件系统不同,权限不是立即从父文件夹继承。这意味着如果我为文件添加权限,它需要一些时间才能传播到其子项。
必须将 Google Drive 视为整个 Drive 宇宙,而不仅仅是单个用户驱动器。文件可以继承用户不一定知道的文件的权限。文件可以有特定于单个用户账户的父级。
安装
安装以下依赖项
- openssl
- postgresql
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