2014-01-09 38 views
0

我們的網站允許用戶在我們的網站上存儲他們的私人文件,因爲我們已經轉移到AWS,現在它們已經在S3存儲桶中。用戶可以再次下載他們的文件,但只能在登錄到我們的網站後才能下載。即使他們有直接的URL(/download.php?fileid=1234),用戶也必須先登錄。向S3用戶提供用戶下載:我做錯了嗎?

現在我們有一個下載腳本,它以塊的形式從S3中提取文件,然後將它傳遞給用戶。這工作正常,甚至允許下載恢復,如果他們的瀏覽器支持它。沒有人有任何抱怨。

但是我有這種嘮叨的感覺,我只是做錯了,並且必須有一些方法允許用戶從S3直接下載 - 但是,只有登錄到我們的網站時。

我一直在尋找Pre-signed URLs - 這是我需要的嗎?如果是這樣,那麼我想我應該做一個Location: https://bucket.s3...當用戶點擊/download.php?fileid=1234重定向?

這將如何與下載管理器支持恢復?會重新開始工作,因爲他們會直接進入S3並帶有過期的密鑰?恢復是非常罕見的,它可能是值得的速度提升普通人不必先通過我們的服務器...

你們如何處理你從S3的安全下載?

回答

0

你提出的兩種解決方案都很好。它只取決於你是否想讓所有數據通過服務器(必須隨後擴展)或鏈接是否在您設置的時間限制後過期。

我將這兩種方法用於不同的情況。

我很少推薦重新實施一個沒有情有可原的情況下工作的解決方案(預計的擴展需求,安全問題等)。

是的,如果他們嘗試在到期時間後訪問簽名的URL,它將會失敗。

+0

而且您可以將簽名URL的過期日期設置爲將來。 – Guy

相關問題