【发布时间】:2020-09-04 10:41:08
【问题描述】:
我正在为 Node.js 应用程序使用 Cloud Vision API“PDF 到文本”功能。我大部分时间都坚持使用 GCP 文档示例,并在这里和那里进行了一些调整:https://cloud.google.com/vision/docs/pdf
一切正常,但是我希望将文件的内容作为 JSON 对象返回给我,以便我可以将其传递给另一个函数,而不是当前将内容写入 JSON 文件并将其存储的行为在云存储上。
有谁知道我需要如何构造outputConfig 对象以实现此目的?
async function detectPdfText(bucketName, fileName) {
// Imports the Google Cloud client libraries
const vision = require('@google-cloud/vision').v1;
// Creates a client
const client = new vision.ImageAnnotatorClient({
keyFilename: './APIKey.json'
});
// The directory to store the results
const outputPrefix = 'json_output'
const gcsSourceUri = `gs://${bucketName}/${fileName}`;
const gcsDestinationUri = `gs://${bucketName}/${outputPrefix}/`;
const inputConfig = {
// Supported mime_types are: 'application/pdf' and 'image/tiff'
mimeType: 'application/pdf',
gcsSource: {
uri: gcsSourceUri,
},
};
const outputConfig = {
gcsDestination: {
uri: gcsDestinationUri,
},
};
const features = [{type: 'DOCUMENT_TEXT_DETECTION'}];
const request = {
requests: [
{
inputConfig: inputConfig,
features: features,
outputConfig: outputConfig,
},
],
};
const [operation] = await client.asyncBatchAnnotateFiles(request);
const [filesResponse] = await operation.promise();
const destinationUri =
filesResponse.responses[0].outputConfig.gcsDestination.uri;
console.log(`Json output for file ${fileName} has been saved to: ${destinationUri}`);
}
module.exports = { detectPdfText };
【问题讨论】:
-
作为一种解决方法,您可以使用
exec()函数运行命令gsutil cp ${destinationUri} .在创建后从GCS 获取json 文件 -
您是否尝试使用 GCS 库将文件加载到代码中?
标签: node.js json google-cloud-platform google-cloud-vision