google-cloud-storage - 从 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'
})
}));
解决方案
不,授予对您正在运行操作的服务帐户的访问权限是不够的。您的 Action 在云端运行,但音频文件由用户设备直接下载。
一种可行的技术是使用签名 URL。这使您可以对云存储桶设置访问限制,但会生成一个 URL 以在有限的时间内访问该文件。
推荐阅读
- r - 官员似乎默认有第一张幻灯片
- highcharts - HighCharts Base64 无法解码以转换为 .png 或 .jpg 图像
- selenium - 元素不可交互
- google-cloud-functions - 存储中的连接问题触发 GCF
- ios - 当接收者应用程序使用 XMPP iOS 处于终止模式时,如何获取消息传递回执?
- javascript - 加载时如何将js文件注入html页面?
- reactjs - DRF & React:如何通过单击“使用 google 登录”将社交应用程序令牌添加到数据库
- grafana - 在 Grafana 上将表格转换为图形或时间序列
- html - Vuetify v-data-table 具有固定的页眉和页脚以及可滚动的正文
- react-native - 无法读取 react-native-image-picker 上未定义的属性“showimagepicker”