vision.detectText()在从drive.files.get()
获取的webviewLink格式中传递由google drive v3呈现的URI时会发出窒息我的webViewLink抓取器是:
drive.files.get({
auth: auth,
fileId: options.fileID,
//fields: 'webContentLink' // <-- downloads the file
fields: 'webViewLink' // <-- "views" the file
},function(err, response) {}
response.webViewLink的格式为:
https://drive.google.com/file/d/0Bw4DMtLCtPMkOTlXR1l4Nkw1WGs/view?usp=drivesdk
vision.detectText(response.webViewLink)chokes with:
ERROR: { PartialFailureError: A failure occurred during this request.
at /Users/node_modules/@google-cloud/vision/src/index.js:434:15
at /Users/node_modules/@google-cloud/vision/src/index.js:126:5
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
errors:
[ { image: 'https://drive.google.com/file/d
/0Bw4DMtLCtPMkOTlXR1l4Nkw1WGs/view?usp=drivesdk',
errors: [Object] } ],
response: { responses: [ [Object] ] },
message: 'A failure occurred during this request.' }
用“传统”形式(如http://www.identifont.com/samples/houseindustries/NeutraText.gif)替换该webViewLink URI可以正常工作。
请注意https://cloud.google.com/vision/docs/request#providing_the_image sez“您可以在请求中提供图片...作为可公开访问的HTTP或HTTPS网址”。
Drive v3 webViewLink格式是否应视为vision.detectText()的“公共可访问”格式?
如果没有,应该如何修改此格式以使vision.detectText()能够接受以支持评估google驱动器托管的图像?
答案 0 :(得分:1)
虽然这是一个可公开访问的网址,但不幸的是,它是嵌入图片的网页的网址,而不是图片文件本身的网址。
因此,您无法在请求中使用Google云端硬盘网址。您最简单的选择可能是谷歌云端存储......有一个用于上传图像的网页用户界面:
https://console.cloud.google.com/storage/browser
从该页面开始:
答案 1 :(得分:0)
同意迈克的观点,我也对Google App脚本进行了一些研究,因为他们都在谷歌保护伞下,所以我做了一个错误的假设,他们可以互相“交谈”(这就是为什么我发现这个)后)。但它无法奏效。我相信这是Google Vision API的本质。
如果您通过身份验证(我相信您必须通过此操作,因为您需要将文件上传到Google存储空间),那么Mike的回答只是一点点添加,那么您可能不需要将文件指定为公开在您的申请中使用。