如何将上传的文件与用户相关联?

时间:2019-07-15 04:06:50

标签: google-cloud-storage

我使用签名的url并从客户端上传文件。

当我的应用程序的用户使用来自客户端的签名URL将文件上传到云存储时。这样的客户端代码:

          upload(signedUrl, file) {
            return fetch(signedUrl, {
              method: 'PUT',
              body: file
            }).then((res) => {
              console.log('upload success');
              console.log('res: ', res);
            });
          },

它将触发云功能以验证上传的文件。

我如何知道云功能中的用户ID?

因为我要发布一条带有用户ID和gcs对象名称的validationPassed消息,以通知后端服务器按用户ID将该gcs对象名称保存到数据库中。

1 个答案:

答案 0 :(得分:0)

通过REST API上传文件时,没有与该文件关联的用户身份。您可以尝试在上传时设置元数据,但这并不安全,任何人都可以传递任何ID(或不传递ID)。

我知道上传文件并获得安全用户的唯一安全方法是使用Firebase客户端库进行上传,同时还使用Firebase身份验证,将UID放在元数据或文件路径中,然后使用安全规则检查实际的UID与声明的UID匹配。