使用 gcloud 等待"detect-text-pdf"操作



我正在运行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/v1API。此API的完整文档可在以下网址找到:https://cloud.google.com/vision/

此外,如文档中所示检测文件中的文本(PDF/TIFF):

一个成功的asyncBatchAnnotate请求返回一个带有单个名称字段的响应:

{  
"name":  "projects/usable-auth-library/operations/**1efec2285bd442df**"  
}  

此名称表示具有关联ID(例如,1efec2285bd442df)的长时间运行的操作,可以使用v1.operationsAPI进行查询。

要检索Vision注释响应,向v1.operations端点发送一个GET请求,在URL中传递操作ID:

GET https://vision.googleapis.com/v1/operations/operation-id

如参考文献和文档中所示,这些都是使用v1.operationsAPI的长时间运行操作。因此,您不能使用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"

相关内容

  • 没有找到相关文章

最新更新