我正在使用扩容框架来实现我的想法,到目前为止,除了我一直坚持的一件事外,它还不错。
我让经过身份验证的用户将文件上传到S3,我使用的是受保护的访问级别,根据这,受保护是所有用户都能读到的,我已经成功地上传了这些文件,并将一些信息保存在了Dynamo表中。
存储文档声明如下:
受保护的:所有用户都可以阅读,但只有创建用户才能写。文件存储在受保护的/{ user_identity_id }/下,其中user_identity_id对应于该用户唯一的Amazon标识ID。
但是,我无法将在S3中创建的{S3}与认知用户池中没有可用的任何信息相匹配,因此,我真的无法知道哪些文件属于特定用户,而且,我需要一种方法让我的Admin用户能够看到所有用户上传的文件。
另一方面,这里说,可以通过将identityId作为参数来检索文件,但是:
我会感谢你的指导。
发布于 2021-01-02 03:01:18
我想我明白你去哪了。我从来没有使用过AWS放大器,但是基本的概念就像我前面提到的生成identityId一样。在图块上,如下所示:

IdentityId是每个联邦标识角色的唯一ID,可以对任何未经身份验证的角色进行身份验证。我们将调用CognitoIdentityCredentials将令牌与aws凭据交换为经过身份验证的角色。一旦用户拥有了凭据,他们就会包含AWS.config.credentials和identityId。
回到您的问题,我找到了"Auth.currentUserCredentials()“方法来获得用户identityID。示例:
let creds = await Auth.currentUserCredentials()
console.log(creds.identityId)然后,基于扩容文档,您可以通过示例检索预先编写的s3:
Storage.list('photos/', {
level: 'protected',
identityId: creds.identityId
})
.then(result => console.log(result))
.catch(err => console.log(err));https://stackoverflow.com/questions/65522885
复制相似问题