我正在开发一个Angular & Firebase应用程序,我想避免在Firebase之外有任何后端。文档不推荐在Firebase中存储图像,所以我想使用Trasnloadit来保存图像。有没有一种方法可以安全地使用Transloadit直接从我的Angular应用程序或Firebase实例发送图像?
发布于 2021-03-02 23:36:09
虽然这是一个古老的问题,但它仍然值得探索您的问题的可能解决方案。如果您希望使用Transloadit安全地发送数据,您可能需要查看creating a signature。签名认证是双向的--所以你可以用Firebase仔细检查文件的来源是否经过认证,但是你需要确保你在服务器端执行这个操作。幸运的是,Transloadit使得生成签名变得简单:
中的params字段
{
"auth": {
"key": "23c96d084c744219a2ce156772ec3211",
"expires": "2021/01/31 16:53:14+00:00",
// This could also contain your template ID if you're not defining your steps here
},
"steps": { ... }
}JSON下一步,您需要将其转换为,为此,您可以使用JSON.stringify()|
之类的库
signature = CryptoJS.HmacSHA256(message, auth_secret).toString(CryptoJS.enc.HEX);接下来,为了将文件发送到GCS,您可以使用/google/store自动机。例如,您可以将此代码片段添加到模板中:
"exported": {
"use": [
":original",
...
],
"robot": "/google/store",
"credentials": "YOUR_GOOGLE_CREDENTIALS"
}此自动机还具有属性acl,用于确定文件所具有的权限。默认情况下,它是public-read,但您有几个选项,包括:authenticated-read、bucket-owner-full-control、private、project-private。
https://stackoverflow.com/questions/32639664
复制相似问题