2013-11-27 319 views
0

我正在尋找一組策略來訪問S3存儲桶中的靜態網站,只使用特定的令牌/符號字符串。 我的意思是,是否有可能使默認情況下每個人都無法讀取靜態網站,但可以通過類似http://mybucket.s3-website-location.amazonaws.com/myfolder/index.html?sign=XXXXX之類的東西臨時訪問? 通過此調用,您還應該可以訪問「myfolder」文件夾中的所有樹。亞馬遜S3保護靜態網站

回答

1

您只能使用帶有過期時間的帶簽名的S3 URL一次對單個URL執行此操作。沒有辦法創建一個簽名,該簽名可以附加到任何一組網址中,這些網址將使它們都能與簽名一起工作,但如果沒有它,則無法工作。

對不起。

然而,這是很容易與實際的網站作爲一個前端做。您必須對網站進行編碼,以將每個請求重定向到特定於該對象的簽名URL。要做到這一點,您需要一個運行您編寫的代碼的EC2實例。但是到目前爲止,S3沒有辦法獨自完成這一切。

3

我不認爲它可能 - 想想你會怎麼做一個正規的網站,您將需要閱讀的查詢字符串,然後做一些查詢/邏輯來確定令牌是有效的,即你需要做一些服務器端處理來執行該邏輯。

一旦你需要添加服務器端邏輯,你不再有一個「靜態」的網站(即使最終你可能會提供靜態網頁)。在這種情況下,S3可能不適合您。

從AWS:http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

您可以託管在Amazon S3的靜態網站。在靜態網站上,單個網頁包含靜態內容。它們也可能包含客戶端腳本。相比之下,動態網站依賴於服務器端處理,包括服務器端腳本,如PHP,JSP或ASP.NET。 Amazon S3不支持服務器端腳本。