在与销售或支持人员联系以设置对 Data Transfer v2.0 的访问权限时,您会收到一个存储分区名称。您需要向销售联系人提供一个 Google 群组,以便您控制对 Google Cloud Storage 中数据文件的访问权限。
使用 gsutil 访问数据
gsutil 工具是一个用 Python 编写的命令行应用,可让您无需编写任何代码即可访问数据。例如,您可以使用 gsutil 作为脚本或批处理文件的一部分,而无需创建自定义应用。
如需开始使用 gsutil,请阅读 gsutil 文档。该工具会在您首次使用时提示您输入凭据,然后存储这些凭据以供日后使用。
gsutil 示例
您可以使用 gsutil 列出所有文件,如下所示:
gsutil ls gs://[bucket_name]/[object name/file name]
gsutil 使用的语法与 UNIX 大致相同,包括通配符星号 (*),因此您可以列出所有 NetworkImpression 文件:
gsutil ls gs://[bucket_name]/dcm_account6837_impression_*
下载文件也很简单:
gsutil cp gs://[bucket_name]/dcm_account6837_impression_2015120100.log.gz
您可以使用 Unix shell 脚本将文件从分散的 DT Google 存储分区复制到您自己的 Google API GCS 存储分区,有两种选择:
在 gsutil 中,如果您使用的是 Unix 系统,请每天针对所有存储分区运行以下命令:
$ day=$(date --date="1 days ago" +"%m-%d-%Y") $ gsutil -m cp gs://{<dcmhashid_A>,<dcmhashid_B>,etc.}/*$day*.log.gz gs://<client_bucket>/
或者,您也可以使用一个稍微复杂一点的解决方案,即使用 Bash 文件:
#!/bin/bash set -x buckets={dfa_-hasid_A dfa_-hashid_B,...} #include all hash ids day=$(date --date="1 days ago" +"%m-%d-%Y") for b in ${buckets[@]}; do / gsutil -m cp gs://$b/*$day*.log.gz gs://
/ / done
以编程方式访问数据
Google Cloud Storage 针对多种编程语言提供了 API 和示例,让您能够以编程方式访问数据。以下是构建可正常运行的集成时必须执行的特定于数据传输 v2.0 的步骤。
获取服务账号
如需开始使用 Data Transfer v2.0,您需要先使用设置工具,该工具会引导您在 Google API 控制台中创建项目并启用该 API。
要开设新的服务账号,请按以下步骤操作:
- 点击创建凭据 > 服务账号密钥。
- 选择要下载哪种格式的服务账号公钥/私钥文件,是标准的 P12 文件还是可由 Google API 客户端库加载的 JSON 文件。
接下来系统就会为您生成新的公钥/私钥对并将其下载到您的计算机;这对密钥仅此一份,您应负责妥善存储。
请务必保持此窗口处于打开状态,您将在下一步中需要用到该服务账号电子邮件地址。
向群组添加服务账号
- 前往 Google 群组
- 点击“我的群组”,然后选择用于管理对 DT v2.0 Cloud Storage 存储分区的访问权限的群组
- 点击“管理”
- 请勿点击“邀请成员”!
- 点击“直接添加成员”
- 将上一步中的服务账号电子邮件地址复制到“成员”框中
- 选择“不接收电子邮件”
- 点击“添加”按钮
我不小心点击了“邀请成员”
范围
传递给 Cloud Storage 的任何范围都必须是只读范围
例如,使用 Java 客户端库时,要使用的正确范围是:
StorageScopes.DEVSTORAGE_READ_ONLY