2013-02-07 75 views
0

我想建立一個非常簡單的方法讓我的用戶通過我的網站從aws下載音頻內容。這裏是流程:從aws s3導軌控制器下載

  1. 我給用戶一個下載鏈接。例如:www.mysite.com/foobar
  2. 用戶單擊鏈接。
  3. 在我的Rails控制器中,我創建了一個到期的aws s3 url並自動開始從該url下載音頻內容。
  4. 用戶的瀏覽器應詢問用戶是否保存該文件。在用戶接受保存文件的情況下,我想要回調我的Rails應用程序以記錄用戶實際下載的文件。

因此,從用戶的角度來看,我希望該過程與轉到我確定的網址一樣簡單,並在接到提示時接受下載文件。

在後臺,我想讓用戶隱藏aws s3 url,我希望在用戶接受下載之後能夠靈活地編寫回調邏輯。

實現此目的的推薦方法是什麼?

回答

0

解決此問題的最佳方法是創建一個具有非常短(10分鐘?)生命週期的S3 URL並返回重定向到S3 URL。這會將S3網址暴露給用戶,但不是漏洞。

如果您想要隱藏S3 URL,您需要通過服務器代理下載,這很昂貴並且需要很長時間才能使用工作進程。我不建議這樣做,但它是隱藏S3資源的唯一方法。

此外,如果觸發下載與一個觀點是很重要的,你需要設置Content-Disposition頭觸發附件下載:

Content-Disposition: attachment; filename="fname.ext"