首页 > 解决方案 > 从 Dialogflow fullfillment 访问 Google Storage 中的媒体文件

问题描述

我们如何从 dialogflow 访问存储在云存储中的媒体文件?

如果我将文件公开,我可以访问这些文件,但其他选项是什么?如果我们授予对服务(dialogflow 和/或 firebase)帐户的访问权限,它应该可以工作吗?

 // https://developers.google.com/actions/assistant/responses#media_responses
 // Create a media response

 conv.ask(new MediaObject({
   name: track.title,
   url: track.source,
   description: track.artist,
   icon: new Image({
     url: track.image,
     alt: 'Media icon'
   })
 }));

标签: google-cloud-storagedialogflow-esactions-on-google

解决方案


不,授予对您正在运行操作的服务帐户的访问权限是不够的。您的 Action 在云端运行,但音频文件由用户设备直接下载。

一种可行的技术是使用签名 URL。这使您可以对云存储桶设置访问限制,但会生成一个 URL 以在有限的时间内访问该文件。


推荐阅读