

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Hébergement virtuel des compartiments à usage général
<a name="VirtualHosting"></a>

L’hébergement virtuel consiste à servir plusieurs sites web à partir d’un seul serveur web. Une façon de différencier les sites dans vos demandes d’API REST Amazon S3 consiste à utiliser le nom d’hôte apparent du Request-URI plutôt que simplement la partie du nom du chemin de l’URI. Une demande REST Amazon S3 ordinaire spécifie un compartiment en utilisant le premier composant délimité par une barre oblique du chemin de l’URI de demande. Sinon, vous pouvez utiliser l’hébergement virtuel Amazon S3 pour accéder à un compartiment à usage général dans un appel d’API REST grâce à l’en-tête HTTP `Host`. En pratique, Amazon S3 interprète `Host` en ce sens que la plupart des compartiments sont automatiquement accessibles (pour un type limité de demandes) à l’adresse `https://bucket-name.s3.region-code.amazonaws.com`. Pour obtenir la liste complète des régions et points de terminaison Amazon S3, consultez [Points de terminaison et quotas Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) dans le *Référence générale d'Amazon Web Services*.

L’hébergement virtuel présente d’autres avantages. Par ailleurs, en nommant le compartiment après avoir enregistré le nom de domaine et en faisant de ce nom un alias DNS pour Amazon S3, vous pouvez totalement personnaliser l’URL des ressources Amazon S3, par exemple, `http://my.bucket-name.com/`. Vous pouvez également publier dans le « répertoire racine » du serveur virtuel de votre compartiment. Cet avantage peut être considérable car beaucoup d’applications existantes recherchent des fichiers dans cet emplacement standard. Par exemple, on peut s’attendre à ce que les fichiers `favicon.ico`, `robots.txt` et `crossdomain.xml` se trouvent tous à la racine. 

**Important**  
Lorsque vous utilisez des compartiments à usage général de type hébergement virtuel avec SSL, le certificat générique SSL correspond uniquement aux compartiments qui ne contiennent pas de points (`.`). Pour contourner cette limitation, utilisez HTTP ou écrivez votre propre logique de vérification de certificat. Pour plus d’informations, consultez [Amazon S3 Path Deprecation Plan](https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/) (Plan d’obsolescence de chemin d’accès Amazon S3) sur la page *AWS News Blog.*

**Topics**
+ [Demandes de type chemin d’accès](#path-style-access)
+ [Demandes de type hébergement virtuel](#virtual-hosted-style-access)
+ [Spécification d’un compartiment d’en-tête `Host` HTTP](#VirtualHostingSpecifyBucket)
+ [Exemples](#VirtualHostingExamples)
+ [Personnalisation d'Amazon S3 URLs avec des enregistrements CNAME](#VirtualHostingCustomURLs)
+ [Comment associer un nom d’hôte à un compartiment Amazon S3](#VirtualHostingCustomURLsHowTo)
+ [Limitations](#VirtualHostingLimitations)
+ [Rétrocompatibilité](#VirtualHostingBackwardsCompatibility)

## Demandes de type chemin d’accès
<a name="path-style-access"></a>

Amazon S3 prend actuellement en charge l’accès aux URL de type hébergement virtuel et chemin d’accès dans toutes les Régions AWS. Cependant, le style path-style URLs sera abandonné à l'avenir. Pour plus d’informations, consultez la **remarque importante** suivante.

Dans Amazon S3, le style de chemin URLs utilise le format suivant :

```
https://s3.region-code.amazonaws.com/bucket-name/key-name
```

Par exemple, si vous créez un compartiment nommé `amzn-s3-demo-bucket1` dans la Région USA Ouest (Oregon) et que vous souhaitez accéder à l’objet `puppy.jpg` dans ce compartiment, vous pouvez utiliser l’URL de type chemin suivant :

```
https://s3.us-west-2.amazonaws.com/amzn-s3-demo-bucket1/puppy.jpg
```

**Important**  
Mise à jour (23 septembre 2020) — Pour nous assurer que les clients disposent du temps nécessaire pour passer au style hébergé virtuel URLs, nous avons décidé de retarder la dépréciation du style path. URLs Pour plus d’informations, consultez [Amazon S3 Path Deprecation Plan – The Rest of the Story](https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/) dans le *blog dédié aux actualités d’AWS *.

**Avertissement**  
Lorsque vous hébergez du contenu de site Web qui sera accessible à partir d'un navigateur Web, évitez d'utiliser le style de chemin URLs, car cela pourrait interférer avec le modèle de sécurité d'origine identique au navigateur. Pour héberger le contenu d'un site Web, nous vous recommandons d'utiliser des points de terminaison du site Web S3 ou une CloudFront distribution. Pour plus d'informations, consultez [Points de terminaison de sites web](WebsiteEndpoints.md) et [Déployez une application monopage basée sur React sur Amazon S3 et CloudFront](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-a-react-based-single-page-application-to-amazon-s3-and-cloudfront.html) dans les modèles de guidage *AWS Perspective*.

## Demandes de type hébergement virtuel
<a name="virtual-hosted-style-access"></a>

Dans un URI de type hébergement virtuel, le nom du compartiment fait partie du nom de domaine compris dans l’URL.

Le style Amazon S3 URLs virtual-hosted—utilise le format suivant :

```
https://bucket-name.s3.region-code.amazonaws.com/key-name
```

Dans cet exemple, `amzn-s3-demo-bucket1` représente le nom de compartiment, USA Ouest (Oregon) représente la Région et `puppy.png` est le nom de la clé :

```
https://amzn-s3-demo-bucket1.s3.us-west-2.amazonaws.com/puppy.png
```

## Spécification d’un compartiment d’en-tête `Host` HTTP
<a name="VirtualHostingSpecifyBucket"></a>

Tant que la demande `GET` n’utilise pas le point de terminaison SSL, vous pouvez spécifier le compartiment pour la demande grâce à l’en-tête `Host` HTTP. L’en-tête `Host` dans la demande REST est interprété comme suit : 
+ Si l’en-tête `Host` est omis ou que sa valeur est `s3.region-code.amazonaws.com`, le compartiment de la demande est le premier composant délimité par une barre oblique de l’URI de demande, et la clé de la demande constitue le reste de l’URI de demande. Il s’agit de la méthode ordinaire, comme illustré par le premier et le deuxième exemples de cette section. L’omission de l’en-tête `Host` est valide uniquement pour les demandes HTTP 1.0. 
+ Sinon, si la valeur de l’en-tête `Host` se termine par `.s3.region-code.amazonaws.com`, le nom du compartiment est le composant de tête de la valeur de l’en-tête `Host` jusqu’à `.s3.region-code.amazonaws.com`. La clé de la demande est l’URI de demande. Cette interprétation expose les compartiments en tant que sous-domaines de `.s3.region-code.amazonaws.com`, comme illustré par les troisième et quatrième exemples de cette section. 
+ Sinon, le compartiment pour la demande est la valeur en minuscule de l’en-tête `Host`, et la clé pour la demande est l’URI de demande. Cette interprétation est utile lorsque vous avez enregistré le même nom DNS que votre nom de compartiment et que vous avez configuré ce nom comme alias de nom canonique (CNAME) pour Amazon S3. La procédure pour enregistrer des noms de domaine et configurer des enregistrements DNS CNAME n’entre pas dans le champ d’application de ce guide, mais le résultat est illustré par l’exemple final de cette section.

## Exemples
<a name="VirtualHostingExamples"></a>

Cette section fournit des exemples URLs et des demandes.

**Example — Style de chemin et demandes URLs**  
Cet exemple utilise les éléments suivants :  
+ Nom de compartiment ‐ `example.com`
+ Région - USA Est (Virginie du Nord) 
+ Nom de clé ‐ `homepage.html`
L’URL se présente comme suit :  

```
1. http://s3.us-east-1.amazonaws.com/example.com/homepage.html
```
La demande se présente comme suit :  

```
1. GET /example.com/homepage.html HTTP/1.1
2. Host: s3.us-east-1.amazonaws.com
```
La demande avec HTTP 1.0 et l’omission de l’en-tête `Host` se présentent comme suit :  

```
1. GET /example.com/homepage.html HTTP/1.0
```

Pour en savoir plus sur les noms compatibles avec le DNS, consultez [Limitations](#VirtualHostingLimitations). Pour en savoir plus sur les clés, consultez [Clés](Welcome.md#BasicsKeys).

**Example — Style et requêtes hébergés URLs virtuellement**  
Cet exemple utilise les éléments suivants :  
+ **Nom de compartiment** : `amzn-s3-demo-bucket1` 
+ **Région** : Europe (Irlande) 
+ **Nom de clé** : `homepage.html`
L’URL se présente comme suit :  

```
1. http://amzn-s3-demo-bucket1.s3.eu-west-1.amazonaws.com/homepage.html
```
La demande se présente comme suit :  

```
1. GET /homepage.html HTTP/1.1
2. Host: amzn-s3-demo-bucket1.s3.eu-west-1.amazonaws.com
```

**Example – Méthode d’alias CNAME**  
Pour utiliser cette méthode, vous devez configurer votre nom DNS en tant qu’alias CNAME pour `bucket-name.s3.us-east-1.amazonaws.com`. Pour de plus amples informations, veuillez consulter [Personnalisation d'Amazon S3 URLs avec des enregistrements CNAME](#VirtualHostingCustomURLs).   
Cet exemple utilise les éléments suivants :  
+ Nom de compartiment ‐ `example.com` 
+ **Nom de clé** : `homepage.html`
L'URL se présente comme suit :  

```
1. http://www.example.com/homepage.html
```
L’exemple se présente comme suit :  

```
1. GET /homepage.html HTTP/1.1
2. Host: www.example.com
```

## Personnalisation d'Amazon S3 URLs avec des enregistrements CNAME
<a name="VirtualHostingCustomURLs"></a>

Selon vos besoins, vous préférerez peut-être que `s3.region-code.amazonaws.com` n’apparaisse pas sur votre site web ou service. Par exemple, si vous hébergez des images de site web sur Amazon S3, vous pourriez préférer `http://images.example.com/` à `http://images.example.com.s3.us-east-1.amazonaws.com/`. Tout compartiment avec un nom compatible DNS peut être référencé comme suit : ` http://BucketName.s3.Region.amazonaws.com/[Filename]`, par exemple, `http://images.example.com.s3.us-east-1.amazonaws.com/mydog.jpg`. Grâce au CNAME, vous pouvez mapper `images.example.com` à un nom d’hôte Amazon S3 pour que l’URL précédente puisse devenir `http://images.example.com/mydog.jpg`. 

Votre nom de compartiment doit être identique à CNAME. Par exemple, si vous créez un CNAME pour mapper `images.example.com` à `images.example.com.s3.us-east-1.amazonaws.com`, `http://images.example.com/filename` et `http://images.example.com.s3.us-east-1.amazonaws.com/filename` seront identiques.

L’enregistrement du DNS CNAME doit donner au nom de domaine comme alias le nom d’hôte de type hébergement virtuel approprié. Par exemple, si le nom du compartiment et le nom de domaine sont `images.example.com` et que votre compartiment se trouve dans la Région USA Est (Virginie du Nord), l’enregistrement CNAME doit avoir comme alias `images.example.com.s3.us-east-1.amazonaws.com`. 

```
1. images.example.com CNAME 			images.example.com.s3.us-east-1.amazonaws.com.
```

Amazon S3 utilise le nom d’hôte pour déterminer le nom du compartiment. C’est pourquoi le CNAME et le nom du compartiment doivent être identiques. Par exemple, admettons que vous avez configuré `www.example.com` comme CNAME pour `www.example.com.s3.us-east-1.amazonaws.com`. Lorsque vous accédez à `http://www.example.com`, Amazon S3 reçoit une demande semblable à la suivante :

**Example**  

```
1. GET / HTTP/1.1
2. Host: www.example.com
3. Date: date
4. Authorization: signatureValue
```

Amazon S3 voit uniquement le nom d’hôte d’origine `www.example.com` et n’a pas connaissance du mappage CNAME utilisé pour résoudre la demande. 

Vous pouvez utiliser n’importe quel point de terminaison Amazon S3 dans un alias CNAME. Par exemple, `s3.ap-southeast-1.amazonaws.com` peut être utilisé dans les alias CNAME. Pour plus d’informations sur les points de terminaison, consultez [Points de terminaison de demande](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTAPI.html) dans la *Référence des API Amazon S3*. Pour créer un site web statique à l’aide d’un domaine personnalisé, consultez [Tutoriel : configuration d’un site Web statique à l’aide d’un domaine personnalisé enregistré auprès de Route 53](website-hosting-custom-domain-walkthrough.md).

**Important**  
Lorsque vous utilisez Custom URLs with CNAMEs, vous devez vous assurer qu'un bucket correspondant existe pour tout enregistrement CNAME ou alias que vous configurez. Par exemple, si vous créez des entrées DNS pour `www.example.com` et `login.example.com` afin de publier du contenu Web à l’aide de S3, vous devez créer les deux compartiments `www.example.com` et `login.example.com`.  
Lorsqu'un enregistrement CNAME ou un alias est configuré pour pointer vers un point de terminaison S3 sans compartiment correspondant, n'importe quel AWS utilisateur peut créer ce compartiment et publier du contenu sous l'alias configuré, même si le propriétaire n'est pas le même.  
Pour la même raison, nous vous recommandons de modifier ou de supprimer l’enregistrement CNAME ou d’alias correspondant lors de la suppression d’un compartiment.

## Comment associer un nom d’hôte à un compartiment Amazon S3
<a name="VirtualHostingCustomURLsHowTo"></a>

**Pour associer un nom d’hôte à un compartiment Amazon S3 à l’aide d’un alias CNAME**

1. Sélectionnez un nom d’hôte qui appartient à un domaine que vous contrôlez. 

   Cet exemple utilise le sous-domaine `images` du domaine `example.com`.

1. Créez un compartiment qui correspond au nom d’hôte. 

   Dans cet exemple, les noms d’hôte et de compartiment sont `images.example.com`. Le nom du compartiment doit correspondre *exactement* au nom d’hôte. 

1. Créez un enregistrement DNS CNAME qui définit le nom d’hôte comme alias du compartiment Amazon S3. 

   Par exemple :

   `images.example.com CNAME images.example.com.s3.us-west-2.amazonaws.com`
**Important**  
Pour des raisons d’acheminement de demande, l’enregistrement DNS CNAME doit être défini exactement comme illustré dans l’exemple précédent. Sinon, il peut sembler fonctionner correctement, mais il entraînera à terme un comportement imprévisible.

   La procédure de configuration d’enregistrements DNS CNAME dépend de votre serveur ou fournisseur DNS. Pour obtenir des informations spécifiques, consultez la documentation du serveur ou contactez le fournisseur.

## Limitations
<a name="VirtualHostingLimitations"></a>

 Les SOAP APIs pour Amazon S3 ne sont pas disponibles pour les nouveaux clients et approchent de leur fin de vie (EOL) le 31 août 2025. Nous vous recommandons d'utiliser l'API REST ou le AWS SDKs. 

## Rétrocompatibilité
<a name="VirtualHostingBackwardsCompatibility"></a>

Les sections suivantes couvrent divers aspects de la rétrocompatibilité Amazon S3 en ce qui concerne les demandes d’URL de type chemin d’accès et hébergement virtuel.

### Points de terminaison hérités
<a name="s3-legacy-endpoints"></a>

Certaines Régions prennent en charge les points de terminaison hérités. Vous pouvez voir ces points de terminaison dans les journaux ou AWS CloudTrail journaux d'accès de votre serveur. Pour plus d’informations, consultez les informations suivantes. Pour obtenir la liste complète des régions et points de terminaison Amazon S3, consultez [Points de terminaison et quotas Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html) dans le *Référence générale d'Amazon Web Services*.

**Important**  
Même si vous pouvez voir des points de terminaison hérités dans vos journaux, nous vous recommandons de toujours utiliser la syntaxe de point de terminaison standard pour accéder à vos compartiments.   
Le style Amazon S3 URLs virtual-hosted—utilise le format suivant :  

```
https://bucket-name.s3.region-code.amazonaws.com/key-name
```
Dans Amazon S3, le style de chemin URLs utilise le format suivant :  

```
https://s3.region-code.amazonaws.com/bucket-name/key-name
```

#### S3-Région
<a name="s3-dash-region"></a>

Certaines régions Amazon S3 plus anciennes prennent en charge des points de terminaison contenant un tiret (`-`) entre `s3` et le code de région (par exemple, `s3‐us-west-2`) au lieu d’un point (par exemple, `s3.us-west-2`). Si votre compartiment se trouve dans l'une de ces régions, le format de point de terminaison suivant peut s'afficher dans les journaux ou CloudTrail journaux d'accès au serveur :

```
https://bucket-name.s3-region-code.amazonaws.com
```

Dans cet exemple, le nom du bucket est amzn-s3-demo-bucket1 et la région est US West (Oregon) :

```
https://amzn-s3-demo-bucket1.s3-us-west-2.amazonaws.com
```

#### Point de terminaison global hérité
<a name="deprecated-global-endpoint"></a>

Pour certaines régions, vous pouvez utiliser le point de terminaison global hérité pour élaborer des demandes qui ne spécifient pas de point de terminaison spécifique à la région. Le point de terminaison global hérité est comme suit :

```
bucket-name.s3.amazonaws.com
```

Dans les journaux ou CloudTrail journaux d'accès de votre serveur, vous pouvez voir des demandes qui utilisent l'ancien point de terminaison global. Dans cet exemple, le nom du compartiment est `amzn-s3-demo-bucket1` et le point de terminaison global hérité est : 

```
https://amzn-s3-demo-bucket1.s3.amazonaws.com
```

**Demandes de type hébergement virtuel pour USA Est (Virginie du Nord)**  
Les demandes effectuées avec le point de terminaison global hérité sont transmises par défaut à la région USA Est (Virginie du Nord). Par conséquent, le point de terminaison global hérité est parfois utilisé à la place du point de terminaison Régional pour USA Est (Virginie du Nord). Si vous créez un compartiment dans la Région USA Est (Virginie du Nord) et que vous utilisez le point de terminaison global, Amazon S3 achemine votre demande vers cette Région par défaut. 

**Demandes de type hébergement virtuel pour d’autres régions**  
Le point de terminaison global hérité est également utilisé pour les demandes de type hébergement virtuel dans d’autres régions prises en charge. Si vous créez un compartiment dans une Région qui a été lancée avant le 20 mars 2019 et que vous utilisez le point de terminaison global hérité, Amazon S3 met à jour l’enregistrement DNS pour rediriger la demande vers l’emplacement correct, ce qui peut prendre du temps. Entre-temps, la règle par défaut s’applique et la demande de type hébergement virtuel est acheminée vers la région USA Est (Virginie du Nord). Amazon S3 la redirige ensuite avec une redirection temporaire HTTP 307 vers la région appropriée. 

Pour les compartiments S3 situés dans des régions lancées après le 20 mars 2019, le serveur DNS n'achemine pas votre demande directement vers l' Région AWS endroit où réside votre compartiment. Au lieu de cela, il renvoie une erreur HTTP 400 Requête erronée. Pour plus d’informations, consultez [Envoi de demandes](https://docs.aws.amazon.com/AmazonS3/latest/API/MakingRequests.html) dans la *Référence d’API Amazon S3*.

**Demandes de type chemin d'accès**  
Pour la région USA Est (Virginie du Nord), vous pouvez utiliser le point de terminaison global hérité pour les demandes de type chemin d’accès. 

Pour toutes les autres Régions, la syntaxe de type chemin exige l’utilisation du point de terminaison spécifique à la Région lors d’une tentative d’accès à un compartiment. Si vous essayez d’accéder à un compartiment avec le point de terminaison global hérité ou un autre point de terminaison qui est différent de celui de la région où le compartiment réside, vous recevez un code d’erreur HTTP 301 Redirection permanente et un message indiquant le bon URI pour votre ressource. Par exemple, si vous utilisez `https://s3.amazonaws.com/bucket-name` pour un compartiment qui a été créé dans la région USA Ouest (Oregon), vous recevez un code d’erreur HTTP 301 Redirection permanente.