Hébergement virtuel de compartiments - Amazon Simple Storage Service

Si nous fournissons une traduction de la version anglaise du guide, la version anglaise du guide aura préséance en cas de contradiction. La traduction sera une traduction automatique.

Hébergement virtuel de compartiments

L'hébergement virtuel consiste à servir plusieurs sites web à partir d'un seul serveur web. Une façon de différencier les sites consiste à utiliser le nom d'hôte apparent de la demande 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 la demande URI. Ou, vous pouvez utiliser Amazon S3 hébergement virtuel pour traiter un godet dans un appel REST API en utilisant le HTTP Host en-tête. En pratique, Amazon S3 interprète Host comme cela signifie que la plupart des seaux sont automatiquement accessibles pour des types limités de demandes à https://bucketname.s3.Region.amazonaws.com. Pour connaître la liste des régions et des points de terminaison Amazon S3, veuillez consulter Régions et points de terminaison Amazon S3 dans le manuel Références générales AWS.

L'hébergement virtuel présente d'autres avantages. En nommant votre panier après le nom de domaine enregistré, en faisant un alias DNS pour Amazon S3, vous pouvez personnaliser complètement l’URL de votre Amazon S3 ressources, par exemple, http://my.bucketname.com/. Vous pouvez également publier dans le répertoire racine du serveur virtuel de votre seau. Cet avantage peut être considérable car beaucoup d'applications existantes recherchent des fichiers dans cet emplacement standard. Par exemple, favicon.ico, robots.txt, crossdomain.xml sont tous attendus à la racine.

Important

Lorsque vous utilisez des compartiments 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 ce problème, utilisez HTTP ou écrivez votre propre logique de vérification de certificat. Pour plus d’informations, voir Amazon S3 Plan de dépréciation des chemins.

Demandes de type chemin

Actuellement, Amazon S3 prend en charge les accès de types hébergement virtuel et chemin dans toutes les régions mais cela va changer (consultez la note Important suivante.)

Dans Amazon S3, les URL de type chemin suivent le format ci-après.

https://s3.Region.amazonaws.com/bucket-name/key name

Par exemple, si vous créez un compartiment nommé mybucket 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/mybucket/puppy.jpg
Important

Les compartiments créés après le 30 septembre 2020 prendront uniquement en charge les demandes de type hébergement virtuel. Les demandes de type chemin continueront d'être prises en charge pour les compartiments créés avant cette date ou à cette date. Pour de plus amples informations, veuillez consulter Amazon S3 Path Deprecation Plan – The Rest of the Story.

Demandes de type hébergement virtuel

Dans un hébergement virtuel–URI de style, le nom du godet fait partie du nom de domaine dans l’URL.

Les URL de type hébergement virtuel Amazon S3 suivent le format ci-après.

https://bucket-name.s3.Region.amazonaws.com/key name

Dans cet exemple, my-bucket représente le nom de compartiment, USA Ouest (Oregon) représente la région et puppy.png est le nom de la clé :

https://my-bucket.s3.us-west-2.amazonaws.com/puppy.png

Spécification d'un compartiment d'en-tête hôte HTTP

Tant que votre GET la demande n’utilise pas le point de terminaison SSL, vous pouvez spécifier le godet pour la demande à l’aide de l’option HTTP Host en-tête. L'en-tête Host dans la demande REST est interprété comme suit :

  • Si le Host l’en-tête est omis ou sa valeur est s3.Region.amazonaws.com, le godet de la demande sera le premier composant délimité par barre oblique de la demande URI, et la clé de la demande sera le reste de la demande URI. 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 hôte est valide uniquement pour les demandes HTTP 1.0.

  • Sinon, si la valeur du Host l’en-tête se termine dans .s3.Region.amazonaws.com, le nom du seau est le composant principal du Host valeur de l’en-tête jusqu’à .s3.Region.amazonaws.com. La clé de la demande est la demande URI. Cette interprétation expose les compartiments en tant que sous-domaines de .s3.Region.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 la demande-URI. Cette interprétation est utile lorsque vous avez enregistré le même nom DNS comme nom de compartiment et avez configuré ce nom pour être un alias CNAME pour Amazon S3. La procédure pour enregistrer des noms de domaine et configurer le DNS dépasse le champ d'application de ce guide, mais le résultat est illustré par l'exemple final de cette section.

Exemples :

Cette section fournit des exemples d'URL et de demandes.

Exemple Type chemin

Cet exemple utilise les éléments suivants :

  • Nom du seau ‐ awsexamplebucket1.net

  • Région ‐ USA Est (Virginie du Nord)

  • Nom clé ‐ homepage.html

L'URL se présente comme suit :

http://s3.us-east-1.amazonaws.com/awsexamplebucket1.net/homepage.html

La demande se présente comme suit :

GET /awsexamplebucket1.net/homepage.html HTTP/1.1 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 :

GET /awsexamplebucket1.net/homepage.html HTTP/1.0

Pour plus d’informations sur les noms compatibles DNS, voir Limitations. Pour plus d’informations sur les clés, voir Clés.

Exemple Hébergé virtuel–Style

Cet exemple utilise les éléments suivants :

  • Nom du seau ‐ awsexamplebucket1.eu

  • Région ‐ Europe (Irlande)

  • Nom clé ‐ homepage.html

L'URL se présente comme suit :

http://awsexamplebucket1.eu.s3.eu-west-1.amazonaws.com/homepage.html

La demande se présente comme suit :

GET /homepage.html HTTP/1.1 Host: awsexamplebucket1.eu.s3.eu-west-1.amazonaws.com

Exemple Méthode CNAME

Pour utiliser cette méthode, vous devez configurer votre nom DNS comme alias CNAME pour bucketname.s3.us-east-1.amazonaws.com. Pour plus d’informations, voir Personnalisation des URL Amazon S3 avec un CNAME. Cet exemple utilise les éléments suivants :

  • Nom du seau ‐ awsexamplebucket1.net

  • Nom clé ‐ homepage.html

L'URL se présente comme suit :

http://www.awsexamplebucket1.net/homepage.html

L'exemple se présente comme suit :

GET /homepage.html HTTP/1.1 Host: www.awsexamplebucket1.net

Personnalisation des URL Amazon S3 avec un CNAME

Selon vos besoins, vous préférerez peut-être que s3.Region.amazonaws.com n'apparaisse pas sur votre site web ou service. Par exemple, si vous hébergez des images du site Web sur Amazon S3, vous préférerez peut-être http://images.awsexamplebucket1.net/ au lieu de http://images.awsexamplebucket1.net.s3.us-east-1.amazonaws.com/. Tout seau avec un nom compatible DNS peut être référencé comme suit : http://BucketName.s3.Region.amazonaws.com/[Filename], par exemple, http://images.awsexamplebucket1.net.s3.us-east-1.amazonaws.com/mydog.jpg. En utilisant CNAME, vous pouvez mapper images.awsexamplebucket1.net à un Amazon S3 nom d’hôte de sorte que l’URL précédente puisse devenir http://images.awsexamplebucket1.net/mydog.jpg.

Votre nom de compartiment doit être identique à CNAME. Par exemple, si vous créez un CNAME à mapper images.awsexamplebucket1.net vers images.awsexamplebucket1.net.s3.us-east-1.amazonaws.com, les deux http://images.awsexamplebucket1.net/filename et http://images.awsexamplebucket1.net.s3.us-east-1.amazonaws.com/filename sera identique.

L’enregistrement DNS CNAME doit alias votre nom de domaine vers l’hébergement virtuel approprié–nom d’hôte style. Par exemple, si votre nom de groupe et votre nom de domaine sont images.awsexamplebucket1.net et votre seau est dans le USA Est (Virginie du Nord) Région, l’enregistrement CNAME doit être alias images.awsexamplebucket1.net.s3.us-east-1.amazonaws.com.

images.awsexamplebucket1.net CNAME images.awsexamplebucket1.net.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. Supposons par exemple que vous ayez 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 similaire à ce qui suit :

GET / HTTP/1.1 Host: www.example.com Date: date 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.

N'importe quel point de terminaison Amazon S3 peut être utilisé dans un CNAME. Par exemple, s3.ap-southeast-1.amazonaws.com peut être utilisé dans les CNAME. Pour plus d’informations sur les critères d’évaluation, voir Critères d’évaluation.

Pour associer un nom d'hôte à un compartiment Amazon S3 avec un CNAME

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

    Cet exemple utilise le images sous-domaine du awsexamplebucket1.net domaine.

  2. Créez un compartiment qui correspond au nom d'hôte.

    Dans cet exemple, les noms de l’hôte et du groupe sont images.awsexamplebucket1.net. Le nom du seau doit exactement correspond au nom d’hôte.

  3. Créer un enregistrement CNAME qui définit le nom d’hôte comme alias pour le Amazon S3 seau.

    Par exemple,

    images.awsexamplebucket1.net CNAME images.awsexamplebucket1.net.s3.us-west-2.amazonaws.com

    Important

    Pour des raisons d'acheminement de demande, l'enregistrement CNAME doit être défini exactement comme illustré dans l'exemple précédent. Sinon, il peut sembler fonctionner correctement, mais entraîner à terme un comportement imprévisible.

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

Limitations

SSL

Les URL de type hébergement virtuel sont prises en charge pour les demandes non-SSL (HTTP) uniquement.

SOAP

La prise en charge de SOAP via HTTP est obsolète, mais continue d'être disponible sur HTTP. Les nouvelles fonctionnalités Amazon S3 ne sont pas prises en charge pour SOAP. Nous vous recommandons d'utiliser l'API REST ou les kits SDK AWS.

Rétrocompatibilité

Points de terminaison hérités

Certaines régions prennent en charge les points de terminaison hérités. Vous pouvez voir ces points de terminaison dans les journaux d'accès au serveur ou les journaux CloudTrail. Pour de plus amples informations, veuillez consulter les informations ci-dessous. Pour connaître la liste des régions et des points de terminaison Amazon S3, veuillez consulter Régions et points de terminaison Amazon S3 dans le manuel Références générales AWS.

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.

Les URL de type hébergement virtuel Amazon S3 suivent le format ci-après.

https://bucket-name.s3.Region.amazonaws.com/key name

Dans Amazon S3, les URL de type chemin suivent le format ci-après.

https://s3.Region.amazonaws.com/bucket-name/key name

s3‐Region

Certains plus âgés Amazon S3 Les régions prennent en charge les terminaux qui contiennent un tableau de bord entre S3 et la 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, vous pouvez voir le format de point de terminaison suivant dans les journaux d'accès au serveur ou les journaux CloudTrail :

https://bucket-name.s3-Region.amazonaws.com

Dans cet exemple, le nom du compartiment est my-bucket et la région est  :USA Ouest (Oregon):

https://my-bucket.s3-us-west-2.amazonaws.com

Point de terminaison global hérité

Pour certaines régions, le point de terminaison global hérité peut être utilisé 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 d'accès au serveur ou les journaux CloudTrail, vous pouvez voir des demandes qui utilisent le point de terminaison global hérité. Dans cet exemple, le nom du compartiment est my-bucket et le point de terminaison global hérité est affiché :

https://my-bucket.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é vont par défaut à 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 seau dans USA Est (Virginie du Nord) et utiliser le point de terminaison global, Amazon S3 achemine votre demande dans 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 utilisez le point de terminaison global hérité, Amazon S3 met à jour le DNS pour rediriger la demande vers l'emplacement correct, ce qui peut prendre du temps. En attendant, la règle par défaut s’applique et votre hébergement virtuel–La demande de style est envoyée à la région US East (N. Virginia). Amazon S3 puis le rediriger avec une redirection HTTP 307 vers la région correcte. Pour les compartiments S3 dans les régions lancées après le 20 mars 2019, le DNS n’achemine pas votre demande directement vers la région AWS dans laquelle se trouve votre compartiment. Au lieu de cela, il renvoie une erreur HTTP 400 Requête erronée. Pour plus d'informations, consultez Redirection de demande et API REST.

Demandes de type chemin

Pour la région USA Est (Virginie du Nord), le point de terminaison global hérité peut être utilisé pour les demandes de type chemin.

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 de réponse HTTP 307 d'erreur de redirection temporaire et un message indiquant l'URI correct 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 une erreur de redirection temporaire HTTP 307.