【问题标题】:How to generate a url that will expire after 30 minutes?如何生成 30 分钟后过期的 url?
【发布时间】:2021-10-11 01:47:38
【问题描述】:
我正在做一个项目,我必须向用户提供一个 30 分钟后过期的 URL。我有一个用户的 uuid,这个 uuid 对每个用户都是唯一的。当用户点击url时,它应该点击google cloud中的云功能并从firestore中检索数据,这个检索到的数据是用户信息,应该显示这个信息。
如果在 NodeJS 中完成会很有帮助。
【问题讨论】:
标签:
node.js
url
google-cloud-platform
google-cloud-firestore
google-cloud-functions
【解决方案1】:
自动过期的解决方案:调用云函数时:
- 从 Firestore 中获取要公开的数据
- 将数据写入云函数环境中的文件
- 将文件上传到 Google Cloud Storage 存储桶(GCS 对象)
- 创建签名 URL 以下载对象,持续时间为 30 分钟
- 返回签名的 url 作为云函数的响应
这里有一个 example in 节点用于创建签名 URL,还有一个 example 用于将文件上传到 Google Cloud Storage
【解决方案2】:
第 1 步: 将名为 expiresAt 的属性存储在您的 Firestore Database 中。该属性将包含一个日期字符串,即Current Time + 30 Minutes
第 2 步:检查来自 node.js 后端服务器 if the current Time is less than expiresAt or not 的 URL。如果为真,则发送正确的响应,否则,向客户端发送错误消息。