通过应用程序授权访问s3私有桶中的用户特定图片。

问题描述 投票:0回答:1

我建了一个MEAN stack应用,用户可以上传图片。目前,我将图片的URL存储在mongodb中,而图片本身则存储在指定文件夹的文件系统中。我读到,为了扩展性,最好将这些图片存储在AWS或firebase等地方,所以我决定选择AWS。

我创建了一个bucket,并且可以通过multer上传图片很好。

我如何让用户只有在登录到我的应用时才能检索他们的图片?前台和后台的认证已经完成了,但我不知道如何使用这个与访问s3 bucket并只获取用户特定的图片。

我可以将桶公开,并轻松建立URL,但这意味着每个人(无论他们是否登录到我的应用程序)都可以访问它们,这不是我想要的。

node.js mongodb amazon-web-services amazon-s3 mean-stack
1个回答
1
投票

如果你能把你的用户认证为 亚马逊Cognito 用户,然后在登录过程中他们将承担一个角色。

如果该角色为S3附加了一个策略,你可以使用 ${cognito-identity.amazonaws.com:sub} 变量。通过构建你的S3 bucket,使用包含这个变量的key路径,你可以开发一个策略,只授予对该用户id前缀的key的访问。

请看一下 此处 S3策略的例子。

© www.soinside.com 2019 - 2024. All rights reserved.