首页 > 解决方案 > 获取 Google Cloud 转移作业的状态

问题描述

我正在使用谷歌云传输 api 的 node.js 实用程序将数据从 s3 存储桶传输到我的谷歌云存储桶,使用

#1
storagetransfer.transferJobs.create(request, function (err, response)

一旦完成,我想继​​续使用一些功能。要检查传输作业的状态,有一个 api

#2
storagetransfer.transferOperations.get(request, function(err, response)

这需要

var request = {
    // The name of the operation resource.
    name: 'transferOperations/my-transfer-operation',

    auth: authClient,
  };

作为参数。我似乎找不到需要输入的值来代替“我的转移操作”

从“storagetransfer.transferJobs.create”收到的响应具有 {name: 'transferJobs/2469904309496821948'} 的数据对象,但该值不适用于“my-transfer-operation”值。

我需要获取“my-transfer-operation”的值,它可以用作使用#2 api 获取我的传输作业状态的参数。

来源:https ://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferOperations/get

标签: node.jsgoogle-cloud-platformgoogle-cloud-storage

解决方案


你可以使用transferOperations.list,你可以在这里测试,把请求name : 'transferOperations'filter : "{"project_id" : "<your-project-id>"}".

响应将包含一系列操作,其结构开始于

{ 
  "operations": [
    {
      "name": "transferOperations/transferJobs-<id-from-transferJobName>-<another-id>",
      "metadata": {
         ...
         "status": "<some-status>", //e.g. IN_PROGRESS
         ...
         },
    ...

包含您尝试使用的 id 的长名称是您需要输入到 transferOperations.get 的内容。如您所见,您还可以直接从该响应中获取状态。


推荐阅读