xmlsquad/ping-drive

Symfony 控制台命令,用于报告寻找和读取 Google Drive 文件夹或文件内容的过程

v0.3.3 2018-10-14 21:49 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:26:01 UTC


README

Symfony 控制台命令,用于报告寻找和读取 Google Drive 文件夹或文件内容的过程。

受同名终端命令的启发: ping

设计用于在 https://github.com/xmlsquad/xml-authoring-tools 的 Symfony 控制台应用程序上下文中使用,后者反过来又用于基于 xml-authoring-project 的已知目录结构中。

此简单命令应用于测试连接和访问特定 Google Drive 实体(文件或文件夹)。为此,它应该尽可能少地做其他事情,只是提供其进度的反馈。

要求

  • PHP ≥7.1
  • Composer(安装所需)
  • Google API 密钥

如何获取 Google API 客户端密钥文件

以下安装和使用说明假定您已创建 OAuth Google API 密钥并将其存储在本地工作站上。

  1. 打开 Google API 控制台
  2. 创建一个项目或选择一个现有项目。
  3. 在项目中启用以下 API: DriveSheets
  4. 转到“凭据”部分,“凭据”选项卡,并 创建“OAuth 客户端 ID”凭据。或者使用现有的 OAuth 凭据。
  5. 点击“OAuth 2.0 客户端 ID”列表右侧的下载按钮(⬇️)。

安装

作为独立项目安装

打开终端并运行

# Using composer's create-project command
composer create-project xmlsquad/ping-drive <directoryName>

# Cloning the git project 
git clone https://github.com/xmlsquad/ping-drive.git <directoryName>
composer install -d <directoryName>

其中 <directoryName> 是必须安装命令的目录。在这种情况下,通过运行来启动命令

php <directoryName>/bin/ping-drive  --help

以下 用法 部分中描述了更多选项和参数。

作为项目依赖安装

打开终端,转到项目根目录并运行

composer require xmlsquad/ping-drive

在这种情况下,通过运行来启动命令

php vendor/bin/ping-drive  --help

用法

该命令代表一个 Google 用户执行。因此,您至少需要在第一次运行期间进行身份验证。我说“至少”,因为如果提供了 --gApiAccessTokenFile,则可以存储身份验证令牌以供后续调用使用。

要使用它,请运行命令并遵循其说明。

命令签名

ping-drive -v --gApiOAuthSecretFile=GAPIOAUTHSECRETFILE --gApiAccessTokenFile=ACCESS-TOKEN-FILE --forceAuthenticate -q URL
  • URL 指定要 ping 的 URL。此参数是必需的。
  • -v--verbose 打开详细模式。在此模式下,将打印详细进度信息。否则,只打印关键信息。
  • --gApiOAuthSecretFile 指定包含 Google API 客户端密钥的 JSON 文件的路径。以下说明如何获取它。
  • --gApiAccessTokenFile 指定一个包含 Google API 访问令牌的 JSON 文件的路径。访问令牌文件是可选的。如果设置了文件路径,访问令牌将被保存,后续执行将不会提示授权。如果给定的文件不存在,则将其创建。
  • --forceAuthenticate 使命令即使提供了访问令牌也会提示 Google 认证。您可以在遇到授权问题或需要认证到另一个账户时使用它。
  • -q--quiet 使命令不打印任何内容。

行为

命令打印 URL 信息

(请参阅带有屏幕截图的每种类型的示例以及命令行的预期输出)

使用示例

php vendor/bin/ping-drive -v https://drive.google.com/drive/u/0/folders/0B5q9i2h-vGaCQXhLZFNLT2JyV0U
# Prints the folder content

如果文件可访问,则命令以状态码 0 退出,如果文件不可访问,则状态码为 1。因此,该命令可以用于复杂的 bash 脚本,例如

if [[ ping-drive -q ... ]]; then echo "Success!"; else echo "Fail"; fi

使用配置文件

客户端密钥和访问令牌路径可以从配置文件中读取。在这种情况下,您在启动命令时不需要设置此选项。

配置文件必须命名为 XmlAuthoringProjectSettings.yaml,并位于运行命令的目录中或在父目录之一中。 XmlAuthoringProjectSettings.yaml.dist 是包含所需参数的配置文件示例。

故障排除

如果您有一个以 Failed to authenticate to Google: 开头的错误消息,而其余的消息没有提供太多信息,请执行以下操作

  1. 请再次检查您是否遵循了 API 密钥说明,并使用正确的 类型 的密钥。
  2. 尝试通过运行带有 --forceAuthenticate 选项的命令从零开始重新认证。
  3. 如果这不起作用,请再次创建 Google API 客户端密钥文件,并确保命令使用新文件。您可以通过运行带有 -v 选项的命令来查看正在使用的密钥文件。

贡献

  1. 克隆存储库。
  2. 在控制台中运行 composer install 以安装依赖项。
  3. 进行更改。确保代码遵循 PSR-2 标准
  4. 通过运行 composer test 测试代码。如果测试失败,修复代码。
  5. 提交并推送更改。