2016-07-12 44 views
2

有誰知道是否有可能設置規則或某種配置到S3服務器,如果某些資源未在給定路徑上找到,將允許回退到不同的虛擬文件夾?AWS S3 GET請求回退到不同的虛擬文件夾

下面是一個例子:

地址被稱爲是https://bucket.s3.domain/virtual-folder/1/res.ext。如果在虛擬文件夾1中找不到res.ext,我希望將其重定向到它的父項https://bucket.s3.domain/virtual-folder/res.ext父項將包含默認版本的資源。所以這個想法是,如果你找不到具體的資源S3應該自動返回默認的。

我做了一些研究,但我得到的只是關於網站重定向。我在這裏需要的是設備在一個請求中提供的原始資源,S3將負責處理所有事情。

這是甚麼可能嗎?

謝謝, Ante。

+0

首先S3不是服務器,它是基於對象的存儲。另外S3不會爲你處理任何事情,它只存儲對象,你必須在腳本中提到這種情況。 S3的重定向是在S3中託管靜態網站時。 – error2007s

+0

@ error2007s我認爲會是這樣,但我希望你可以做一些類似的配置(如政策),你可能會放一些規則。不過謝謝你的評論。 –

+0

你將不得不編寫你描述的圖層。 – jbird

回答

5

現在有可能新功能是S3!你必須設置你的水桶是一個靜態網站(這將需要你改變你用驢文件URL),然後設置以下重定向規則:

<RoutingRules> 
    <RoutingRule> 
     <Condition> 
      <KeyPrefixEquals>artist-media/staging</KeyPrefixEquals> 
      <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals> 
     </Condition> 
     <Redirect> 
      <HostName>someotherbucket.s3.amazonaws.com</HostName> 
      <ReplaceKeyPrefixWith>artist-media/production</ReplaceKeyPrefixWith> 
     </Redirect> 
    </RoutingRule> 
</RoutingRules> 

我想要做的是服務於圖片從開發人員存儲桶中上傳文件,如果沒有,則退回到生產文件。 因此,我必須使用KeyPrefixEqualsReplaceKeyPrefixWith,如果這不是您需要的,您可以將其刪除。 至於重定向本身,規則會捕獲403錯誤(由於文件丟失而被拒絕,如果您公開存儲桶,則可能需要在此處使用40),然後設置新的主機(存儲桶URL)以指向。

+0

感謝您的更新! – jbird

+1

非常感謝的人。這裏標記爲和你的+1一樣好 –