我正在运行detect-text-pdf
与gcloud:
$ gcloud ml vision detect-text-pdf gs://my-bucket/pdfs/D.pdf gs://my-bucket/pdfs/D
,输出如下:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID"
}
其中PROJECT_ID
为项目,OPERATION_ID
为十六进制数。
如何等待操作完成?我试过:
gcloud services operations wait OPERATION_ID
但是我得到错误:
ERROR: gcloud crashed (ArgumentTypeError): Invalid value 'OPERATION_ID': Operation format should be operations/namespace.id
如果有帮助的话,我正在用colab笔记本运行。
TL;DR 如何等待操作完成?
您不能使用gcloud services operations wait
命令,但是您可以获得文档中所示的操作状态处理长时间运行的操作
来自gcloud ml vision detect-text-pdf
参考:
API参考
该命令使用
vision/v1
API。此API的完整文档可在以下网址找到:https://cloud.google.com/vision/
此外,如文档中所示检测文件中的文本(PDF/TIFF):
一个成功的
asyncBatchAnnotate
请求返回一个带有单个名称字段的响应:{ "name": "projects/usable-auth-library/operations/**1efec2285bd442df**" }
此名称表示具有关联ID(例如,
1efec2285bd442df
)的长时间运行的操作,可以使用v1.operations
API进行查询。要检索Vision注释响应,向
v1.operations
端点发送一个GET请求,在URL中传递操作ID:GET https://vision.googleapis.com/v1/operations/operation-id
如参考文献和文档中所示,这些都是使用v1.operations
API的长时间运行操作。因此,您不能使用gcloud services operations wait
命令,但是您可以获取操作状态,如文档中所示。处理长时间运行的操作:
您请求的几个操作是长时间运行的,…这些类型的请求将返回一个带有操作ID的JSON,您可以使用它来获取操作的状态。
在获取操作代码示例一节中,有一些指令用于请求长时间运行的操作的状态。
HTTP方法和URL:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/operations/operation-id
使用curl发送请求,执行以下命令:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/operations/operation-id"