1

我正在尝试使用 Google Cloud Vision API。

我在此链接中使用 REST API 。

发布https://vision.googleapis.com/v1/files:asyncBatchAnnotate

我的要求是

{
    "requests": [
        {
            "inputConfig": {
                "gcsSource": {
                    "uri": "gs://redaction-vision/pdf_page1_employment_request.pdf"
                },
                "mimeType": "application/pdf"
            },
            "features": [
                {
                    "type": "DOCUMENT_TEXT_DETECTION"
                }
            ],
            "outputConfig": {
                "gcsDestination": {
                    "uri": "gs://redaction-vision"
                }
            }
        }
    ]
}

但响应始终只有“名称”,如下所示:

{
    "name": "operations/a7e4e40d1e1ac4c5"
}

我的“gs”位置是有效的。当我在“gcsSource”中写错路径时,就会出现 404 not found 错误。谁知道为什么我的反应很奇怪?

4

2 回答 2

2

这是预期的,它不会将输出作为 HTTP 响应发送给您。要查看 API 做了什么,您需要转到目标存储桶并检查名为“xxxxxxxxoutput-1-to-1.json”的文件,此外,您需要在 gcsDestination 部分中指定对象的名称,例如例子:gs://redaction-vision/test

于 2019-03-06T12:30:24.837 回答
1

由于 asyncBatchAnnotate 是一个异步操作,它不会返回结果,而是返回操作的名称。您可以使用该唯一名称调用GetOperation来检查操作的状态。

请注意,如果 pdf 的页数超过batchSize并且输出 json 文件名根据页数而变化,则 pdf 可能有超过 1 个输出文件。总是附加“output-1-to-1.json”是不安全的。

确保您在输出配置中放置的 uri 前缀是唯一的,因为您必须在 gcs 中对您提供的前缀进行通配符搜索,以获取所有已创建的 json 文件。

于 2019-03-14T18:05:16.540 回答