2

J'ai un seau amazon S3 desservant un site Web de S3bucketurl.com/foo/index.html.Comment rediriger la racine du compartiment vers le sous-répertoire dans AWS S3?

Je voudrais configurer un redirection rule, qui réécrivent automatiquement l'URL comme suit:

Accès S3bucketurl.com doit rediriger automatiquement vers S3bucketurl.com/foo, et servir le fichier index.html contenu dans le sous-dossier foo.

J'ai essayé de mettre en place la règle de redirection en tant que tel:

<RoutingRules> 
    <RoutingRule> 
    <Condition> 
     <KeyPrefixEquals>/</KeyPrefixEquals> 
    </Condition> 
    <Redirect> 
     <ReplaceKeyWith>api</ReplaceKeyWith> 
    </Redirect> 
    </RoutingRule> 
</RoutingRules> 

qui se traduit par un 404:

404 Not Found 

Code: NoSuchKey 
Message: The specified key does not exist. 
Key: index.html 

J'ai aussi essayé permutations de <ReplaceKeyWith>/api</ReplaceKeyWith>, <ReplaceKeyWith>api/</ReplaceKeyWith> et <ReplaceKeyWith>/api/</ReplaceKeyWith> sans résultat .

Répondre

1

<KeyPrefixEquals>/</KeyPrefixEquals>

Il y a deux problèmes, ici: d'abord, cela correspond à un préfixe , ce qui signifie qu'il ya une * implicite à la fin. Ce n'est pas ce que tu veux, ici. En outre, aucune clé d'un compartiment S3 n'a généralement le préfixe /. La clé d'objet commence par le caractère après la barre oblique. Votre <ReplaceKeyWith> est ignoré car le test du préfixe ne correspond jamais. Mais les règles ne sont pas la meilleure solution, ici.

La façon de faire ce que vous voulez est ceci:

télécharger un fichier vide pour créer un nouvel objet à la racine du seau, quel que soit le nom que vous nommé utilisez pour vos documents d'index, généralement index.html. Rendez-le public à moins que votre stratégie de compartiment ne rende tout public.

Dans les méta-données d'objet pour cet objet, définissez x-amz-website-redirect-location-/api/ (ou /foo/, ou quel que soit le chemin que vous souhaitez).

+1

Merci, c'est en fait la solution que j'ai trouvée moi-même. Super pour voir cette approche confirmée. :) – jottr