簡體   English   中英

下載文件從Amazon S3重定向到客戶端

[英]Download file redirecting from Amazon S3 to Client

我是Amazon S3的新手,我想構建一個可能不存在的解決方案。

我必須構建一個Web應用程序(Java或PHP后端),用戶可以在其中登錄和下載文件。 Web服務器(Tomcat或Apache)驗證用戶並允許從Amazon S3下載。 當我使用CMS時,文件很小,請求很少。 因此,流程為:

Client (User) > Server (user validation) > CMS (get file) > Server > Client (User)

現在,文件更大了,我想得到下一個流程:

Client (User) > Server (user validation) > Amazon S3 > Client (User)

我的目標是提高服務器的性能,並避免在用戶獲得文件時過多的文件流量。 可能嗎?

我的第一種方法(尚未實現!)是從服務器到Amazon S3的sendredirect:

用戶請求/file1 =>服務器將/file1轉換為/company.s3.amazon/mybucket/file1.pdf並執行sendredirect到Amazon S3鏈接。

通過這種方法,我認為我無法驗證IAM用戶(我不使用任何API),但我也可以通過按服務器IP地址過濾的存儲桶策略來保護內容。

謝謝。

我建議使用Pre-Signed URL ,這是一種提供存儲在Amazon S3中的私有對象的臨時訪問的方法。

預先簽名的URL包括:

  • 檔案網址
  • 與有權獲取文件的用戶相關聯的訪問密鑰
  • 到期時間戳記
  • 基於授權用戶的秘密密鑰(與他們的訪問密鑰匹配)的哈希簽名

可以從幾行代碼中生成預簽名的URL,只有在GET請求發送到Amazon S3時才進行評估

當您的應用程序(在服務器上)確定用戶有權訪問文件時 ,它可以生成預簽名的URL並將其作為網頁的一部分返回(例如,在超鏈接中)。 當用戶單擊鏈接時,文件將直接從S3中提供 到期后,URL將不再提供對該文件的訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM