View a markdown version of this page

Demande de routage - Amazon Simple Storage Service

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.

Demande de routage

Programmes qui adressent des requêtes à des buckets créés à l'aide de l'CreateBucketAPI et qui incluent des redirections CreateBucketConfiguration indispensables. De plus, certains clients qui ne respectent pas la durée de vie des demandes DNS risquent de rencontrer des problèmes.

Cette section décrit les demandes de routage et les erreurs DNS à prendre en compte lors de la conception de votre service ou de votre application à utiliser avec Amazon S3.

Redirection de demande et API REST

Amazon S3 utilise le système de noms de domaine (DNS) pour diriger les demandes vers les installations susceptibles de les traiter. Ce système fonctionne de façon efficace, mais des erreurs de routage temporaires peuvent survenir. Si une demande arrive à une destination Amazon S3 erronée, Amazon S3 répond par une redirection temporaire qui indique au demandeur de renvoyer la demande à un nouveau point de terminaison. Si une demande est mal formulée, Amazon S3 utilise des redirections permanentes pour fournir des instructions sur la manière de formuler correctement la demande.

Important

Pour utiliser cette fonction, vous devez disposer d'une application capable de gérer les réponses de redirection Amazon S3. La seule exception concerne les applications qui fonctionnent avec des compartiments qui ont été créés sans <CreateBucketConfiguration>. Pour plus d'informations sur les contraintes de localisation, consultez la section Accès à un compartiment Amazon S3 et sa mise en vente.

Pour toutes les Régions lancées après le 20 mars 2019, si une demande arrive à l'emplacement Amazon S3 incorrect, Amazon S3 renvoie une erreur HTTP 400 Requête incorrecte.

Pour plus d'informations sur l'activation ou la désactivation d'un Région AWS, consultez Régions AWS et Points de terminaison dans le. Références générales AWS

routage DNS

Le routage DNS achemine les demandes vers les installations Amazon S3 appropriées. La figure et la procédure suivantes montrent un exemple de routage DNS.

Étapes qui se produisent lorsqu'un serveur DNS achemine les demandes du client vers l'installation B.
Étapes des demandes de routage DNS
  1. Le client effectue une demande DNS pour obtenir un objet stocké sur Amazon S3.

  2. Le client reçoit une ou plusieurs adresses IP des installations qui peuvent traiter la demande. Dans cet exemple, l'adresse IP est pour l'installation B.

  3. Le client effectue une demande adressée à l'installation B Amazon S3.

  4. L'installation B renvoie une copie de l'objet au client.

Redirection de demande temporaire

Une redirection temporaire est un type de réponse d'erreur qui indique au demandeur qu'il doit renvoyer la demande à un autre point de terminaison. En raison de la nature distribuée d'Amazon S3, les demandes peuvent être acheminées temporairement vers la mauvaise installation. Cela a plus de chances de se produire immédiatement après la création ou la suppression de compartiments.

Par exemple, si vous créez un compartiment et adressez immédiatement une demande à ce compartiment, vous pouvez recevoir une redirection temporaire, selon la contrainte d'emplacement du compartiment. Si vous avez créé le bucket dans l'est des États-Unis (Virginie du Nord) Région AWS, vous ne verrez pas la redirection car il s'agit également du point de terminaison Amazon S3 par défaut.

Toutefois, si le compartiment est créé dans une autre Région, toutes les demandes adressées au compartiment iront au point de terminaison par défaut lors de la propagation de l'entrée DNS du compartiment. Le point de terminaison par défaut redirige la demande vers le point de terminaison correct avec une réponse HTTP 302. Les redirections temporaires contiennent un URI vers l'installation correcte, que vous pouvez utiliser pour renvoyer immédiatement la demande.

Important

Ne réutilisez pas un point de terminaison fourni par une réponse de redirection précédente. Cela peut sembler fonctionner (même pendant de longues périodes), mais cela peut fournir des résultats imprévisibles, voire entraîner un échec sans préavis.

La figure et la procédure suivantes montrent un exemple de redirection temporaire.

Étapes qui se produisent lorsqu'un client envoie une demande à B et est redirigé vers C.
Étapes d'une redirection de demande temporaire
  1. Le client effectue une demande DNS pour obtenir un objet stocké sur Amazon S3.

  2. Le client reçoit une ou plusieurs adresses IP des installations qui peuvent traiter la demande.

  3. Le client effectue une demande adressée à l'installation B Amazon S3.

  4. L'installation B renvoi une redirection indiquant que l'objet est disponible à partir de l'emplacement C.

  5. Le client renvoie la demande à l'installation C.

  6. L'installation C renvoie une copie de l'objet.

Redirection de demande permanente

Une redirection permanente indique que votre demande s'adressait de façon inappropriée à une ressource. Par exemple, des redirections permanentes se produisent si vous utilisez une demande de type chemin pour accéder à un compartiment qui a été créé avec <CreateBucketConfiguration>. Pour plus d'informations, consultez la section Accès à un compartiment Amazon S3 et sa mise en vente.

Pour vous aider à détecter ces erreurs au cours du développement, ce type de redirection ne contient pas d'en-tête HTTP d'emplacement vous permettant de suivre automatiquement la demande vers l'emplacement correct. Veuillez consulter le document d'erreur XML obtenu comme aide pour utiliser le point de terminaison Amazon S3 correct.

Exemples de redirection de demande

Voici des exemples de réponses à des redirections de demande temporaires.

Réponse de redirection temporaire d'API REST

HTTP/1.1 307 Temporary Redirect Location: http://awsexamplebucket1.s3-gztb4pa9sq.amazonaws.com/photos/puppy.jpg?rk=e2c69a31 Content-Type: application/xml Transfer-Encoding: chunked Date: Fri, 12 Oct 2007 01:12:56 GMT Server: AmazonS3 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>TemporaryRedirect</Code> <Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message> <Endpoint>awsexamplebucket1.s3-gztb4pa9sq.amazonaws.com</Endpoint> </Error>

Réponse de redirection temporaire d'API SOAP

Note

Les SOAP API pour Amazon S3 ne sont pas disponibles pour les nouveaux clients. Leur fin de vie est prévue le 31 août 2025. Nous vous recommandons d'utiliser l'API REST ou les kits de AWS développement logiciel (SDK).

<soapenv:Body> <soapenv:Fault> <Faultcode>soapenv:Client.TemporaryRedirect</Faultcode> <Faultstring>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Faultstring> <Detail> <Bucket>images</Bucket> <Endpoint>s3-gztb4pa9sq.amazonaws.com</Endpoint> </Detail> </soapenv:Fault> </soapenv:Body>

Considérations DNS

Une disponibilité extrêmement élevée est l'un des prérequis pour la conception d'Amazon S3. Afin de répondre à cette exigence, nous devons actualiser les adresses IP associées au point de terminaison Amazon S3 dans le DNS si nécessaire. Ces changements se répercutent automatiquement sur les clients de courte durée, mais pas sur certains clients de longue durée. Long-lived les clients devront prendre des mesures spéciales pour résoudre périodiquement le point de terminaison Amazon S3 afin de bénéficier de ces modifications. Pour plus d'informations sur les machines virtuelles, consultez les rubriques suivantes :

  • Pour Java, la JVM de Sun met en cache les recherches DNS pour toujours par défaut ; consultez la section « InetAddress Mise en cache » de la InetAddress documentation pour savoir comment modifier ce comportement.

  • Pour PHP, l'ordinateur virtuel persistant qui utilise les configurations de développement les plus couramment utilisées met en cache les recherches jusqu'à ce que l'ordinateur virtuel redémarre. Accédez à la documentation de téléchargement de HostByName PHP.