[英]Amazon Web Service (AWS) Private Storage For Authenticated Users
我的項目流程:
我已經使用 Firebase( Authentication
和Storage
)打下了基礎。 所以在 Firebase 我制定了這個Storage Rules
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /assets/{userId}/{assetsId} {
allow read;
}
}
}
插圖存儲:
assets/
|----user01/
| |----user01.jpg
|----user02/
| |----user02.jpg
基本上只有那個 user01 可以看到 user01.jpg 並且只有那個 user02 可以訪問看到 user02.jpg 如果他/她登錄
問題:
現在,我目前想嘗試在 Amazon Web Services (AWS) 上重新制作這個項目。 我目前正在使用AWS Cognito
,據我所知,它等同於Firebase Authentication
& AWS S3 Storage
,據我所知,它等同於Firebase Storage
。
我仍然對如何使用 AWS 進行開發感到困惑,但我認為如果用戶登錄,我認為我已經管理了如何獲取userId
(或者我認為在 AWS Cognito 中的sub
)
我嘗試使用https://awspolicygen.s3.amazonaws.com/policygen.html為S3 Bucket Policy
重新創建Firabase Storage Rules
,但沒有像只有這個userId
(或我認為在 AWS Cognito 中認為sub
)這樣的條件允許閱讀他的/她的私人文件。
我是這個 Firebase 的新手,對 AWS 的東西也很陌生。 請指導我通過,非常感謝。
你不應該使用亞馬遜S3斗政策,也不應該把S3權限的用戶自己。
相反,它應該按如下方式工作:
這樣,由應用程序確定訪問權限,這在任何引用/鏈接到私有對象的頁面上完成。 生成預簽名URL只需要幾行代碼,並且不需要API回調到Amazon S3。
例如:想象一個照片共享網站。 默認情況下,照片應該是私密的(無訪問權限)。 如果用戶登錄並希望在線查看照片,則生成 HTML 頁面的應用程序將使用<img src=...>
標記,但 URL 將是預簽名 URL 。 這意味着 Web 瀏覽器將在頁面上顯示圖像。 同樣,如果有圖片的下載鏈接,則 URL 應該是預先簽名的 URL。 此外,用戶可能會選擇與其他用戶共享圖片。 此類信息將保存在數據庫中。 當另一個用戶想要查看共享圖像時,應用程序會檢查數據庫,驗證權限,然后提供一個預先簽名的 URL。 這將“所有權”從路徑(存儲圖像的位置)移到數據庫中。
我不是 Firebase 用戶,所以我不知道它有什么功能,但以上是在 S3 中管理用戶對私有文件的訪問的推薦方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.