繁体   English   中英

通过 Lambda 读取/写入 Cognito 用户 S3 存储桶

[英]Read/Write to a Cognito Users S3 Bucket via Lambda

我有一个带有存储和 Cognito 用户池的 React Amplify 站点。 当我的应用程序上的用户上传图片时,它会触发 lambda function 修改图片并将其写入与我创建的 Amplify 存储桶无关的公共 S3 存储桶。 我想更新我的 lambda function 以将文件写回与我设置的 Amplify Storage 关联的他们自己的个人路径。 我想完全摆脱公共 S3 存储桶。

我目前正在使用 boto3 函数,假设我知道 Bucket Key 路径的名称,如下所示:

bucket.upload_file(Lambda Temp Location, User Bucket Item Key)

我有一个自定义 function 将他们的文件上传到公共 S3 存储桶,但在切换到我使用 Amplify 设置的存储时,我注意到存储桶名称对用户来说是唯一的。 在线研究我检查了 IAM 角色权限,我看到存储桶密钥路径如下所示。

private/${cognito-identity.amazonaws.com:sub}

如何将 ${cognito-identity.amazonaws.com:sub} 放入我的 lambda function? 我想我可以使用 Sub id 到 append 到链接,但它与我在 S3 中看到的不匹配。 如果可能的话,我正在考虑将此详细信息从我的 js 脚本发送到 API 调用,或者通过匹配用户属性或其他方式在 Lambda 本身中获取该信息...任何帮助将不胜感激。

谢谢!!!!!!

它表示来自 credentialsProvider 的 IdentityID。 您可以查看: https://aws-amplify.github.io/aws-sdk-ios/docs/reference/AWSCore/Classes/AWSCognitoCredentialsProvider.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM