亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

S3:文件的唯一鏈接?

S3:文件的唯一鏈接?

嗶嗶one 2023-03-18 17:54:32
我對我的項目有幾個問題,因為我已經停止并且不知道如何繼續。我創建了一個小型 saas,類似于教育平臺。它是關于付費訪問視頻文件的。編程語言是 TypeScript:React / NestJS / PostgreSQL / Stripe / AWS S3。我現在的邏輯如下 - 如果用戶付款,我將記錄添加到我的數據庫中:user_trainingsid | uuid | user_id | training_id 1 | d-2a |       1 |           1我的簡化訓練基礎結構如下所示:trainingsid | uuid | name | video_file_name_key 1 | d21x |  foo |      videos/boo.mp4文件videos/boo.mp4是我文件的密鑰,它在存儲桶 aws s3 中。因此,id 為 1 的用戶在登錄我的應用程序后可以訪問培訓?,F在,我該如何保護這個文件和文件的鏈接,使用戶無法共享它?我知道我可以啟用 CORS,這可能會解決我的問題,但我希望此文件的鏈接是唯一的。如果可能的話?這個文件能以某種方式得到保護嗎?我怎樣才能得到一個文件的鏈接?前端用戶只有密鑰。我可以通過我的服務器鏈接到該文件,但我不知道該怎么做。
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

存儲在 Amazon S3 中的對象默認是私有的。

對于您的情況,我建議使用Amazon S3 pre-signed URLs,這些 URLs 是有時間限制的 URLs,可以臨時訪問私有對象。

流程將是:

  • 用戶登錄到您的應用程序

  • 用戶請求訪問課程

  • 您的應用程序檢查他們是否有權訪問課程

  • 如果是這樣,應用程序會生成一個預簽名的 URL,該 URL 的有效期為 30 分鐘

  • 應用程序返回課程鏈接,或在頁面中使用預簽名 URL(例如在標簽中<video>

  • 當用戶單擊鏈接或在瀏覽器中打開頁面時,瀏覽器會通過預簽名 URL 從 S3 請求對象

  • Amazon S3 將驗證預簽名 URL 上的簽名并確認其在有效期內。如果是,它將對象返回給用戶。

  • 如果有效期已過,則返回預簽名URLAccess Denied

只需幾行代碼即可生成預簽名 URL,并且不需要調用 AWS。

使用預簽名 URL 的好處在于您的應用程序可以完全控制可以訪問該對象,但 Amazon S3 負責向用戶提供內容。


查看完整回答
反對 回復 2023-03-18
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號