【问题标题】:google Cloud Vision API: vision.detectText() does not accept a google drive v3 URIgoogle Cloud Vision API:vision.detectText() 不接受 google drive v3 URI
【发布时间】:2017-06-06 23:35:52
【问题描述】:

vision.detectText() 在收到 google drive v3 以 webviewLink 格式从 drive.files.get() 获得的 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) 窒息:

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 URL”。

对于 vision.detectText(),Drive v3 webViewLink 格式是否应该算作“可公开访问”?

如果不是,应如何修改此格式以使 vision.detectText() 可以接受以支持评估 google drive 托管的图像?

【问题讨论】:

  • 我在下面添加了一个答案 - 但是webContentLink 会返回什么?那是文件网址吗?
  • 作为一种解决方法,“thumbnailLink”与 Cloud Vision 一起工作得非常好。不过,您需要从 URI 中删除“=s220”。
  • drive.google.com/uc?id=xxxx 即使公开也失败,就好像驱动器检测到云视觉并阻止它。

标签: google-cloud-vision


【解决方案1】:

虽然这是一个可公开访问的 URL,但不幸的是,它是嵌入图像的页面的 URL,而不是图像文件本身的 URL。

因此,您不能在请求中使用 Google 云端硬盘网址。您最简单的选择可能是 Google Cloud Storage...这里有一个 Web UI 可以上传您的图片:

https://console.cloud.google.com/storage/browser

从那个页面,你会:

  1. 点击创建存储桶并按照说明操作(您可以接受默认值,您只需要创建一个全局唯一的存储桶名称)。
  2. 点击上传文件并选择您的图片。
  3. 上传后,选中文件旁边的复选框,然后点击公开分享
  4. 点击公共链接(与文件位于同一行)以获取公共 URL。

【讨论】:

    【解决方案2】:

    同意 Mike,我也对 Google App Script to Vision API 做了一些研究,因为它们都在 Google 的保护伞下,所以我错误地假设它们可以相互“交谈”(这就是我发现这个的原因邮政)。但它无法正常工作。我相信这就是 Google Vision API 的本质。

    迈克的回答只是一点点附加,如果你通过了身份验证(我相信你必须通过这个,因为你需要将文件上传到谷歌存储),那么你可能不需要指定文件公开以在您的应用程序中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多