簡體   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