Tests CORS - 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.

Tests CORS

Pour tester votre CORS configuration, une demande de CORS prévol peut être envoyée avec la OPTIONS méthode afin que le serveur puisse répondre s'il est acceptable d'envoyer la demande. Lorsqu'Amazon S3 reçoit une demande préalable au vol, S3 évalue la CORS configuration du compartiment et utilise la première CORSRule règle correspondant à la demande entrante pour activer une demande d'origine croisée. Pour qu'une règle corresponde, les conditions suivantes doivent être remplies :

  • L'Originen-tête d'une CORS demande adressée à votre bucket doit correspondre aux origines de l'AllowedOriginsélément de votre CORS configuration.

  • Les HTTP méthodes spécifiées Access-Control-Request-Method dans une CORS demande adressée à votre compartiment doivent correspondre à la ou aux méthodes répertoriées dans l'AllowedMethodsélément de votre CORS configuration.

  • Les en-têtes répertoriés dans l'Access-Control-Request-Headersen-tête d'une demande de prévol doivent correspondre aux en-têtes de l'AllowedHeadersélément de votre configuration. CORS

Voici un exemple de CORS configuration. Pour créer une CORS configuration, consultez Configuration CORS. Pour plus d'exemples de CORS configuration, consultez la section Éléments d'une CORS configuration.

JSON
[ { "AllowedHeaders": [ "Authorization" ], "AllowedMethods": [ "GET" "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example1.com" ], "ExposeHeaders": [ "x-amz-meta-custom-header" ] } ]

Pour tester la CORS configuration, vous pouvez envoyer une OPTIONS vérification avant le vol à l'aide de la CURL commande suivante. CURLest un outil de ligne de commande qui peut être utilisé pour interagir avec S3. Pour plus d'informations, consultez CURL.

curl -v -X OPTIONS \ -H "Origin: http://www.example1.com" \ -H "Access-Control-Request-Method: PUT" \ -H "Access-Control-Request-Headers: Authorization" \ -H "Access-Control-Expose-Headers: x-amz-meta-custom-header"\ "http://bucket_name.s3.amazonaws.com/object_prefix_name"

Dans l'exemple ci-dessus, la curl -v -x OPTIONS commande est utilisée pour envoyer une demande de prévol à S3 afin de savoir si S3 l'autorise à envoyer une PUT demande sur un objet à partir de l'origine croisée. http://www.example1.com Les en-têtes Access-Control-Request-Headers et en-têtes Access-Control-Expose-Headers sont facultatifs.

  • En réponse à l'Access-Control-Request-Methoden-tête de la OPTIONS demande de pré-vol, Amazon S3 renvoie la liste des méthodes autorisées si les méthodes demandées correspondent.

  • En réponse à l'Access-Control-Request-Headersen-tête de la OPTIONS demande de pré-vol, Amazon S3 renvoie la liste des en-têtes autorisés si les en-têtes demandés correspondent.

  • En réponse à l'Access-Control-Expose-Headersen-tête de la OPTIONS demande de prévol, Amazon S3 renvoie une liste des en-têtes autorisés si les en-têtes demandés correspondent aux en-têtes autorisés accessibles par les scripts exécutés dans le navigateur.

Note

Lors de l'envoi d'une demande de prévol, si l'un des en-têtes de CORS demande n'est pas autorisé, aucun des CORS en-têtes de réponse n'est renvoyé.

En réponse à cette OPTIONS demande avant le vol, vous recevrez une 200 OK réponse. Pour les codes d'erreur courants reçus lors des tests CORS et pour plus d'informations sur la résolution des problèmes CORS connexes, consultez la section Résolution des problèmesCORS.

< HTTP/1.1 200 OK < Date: Fri, 12 Jul 2024 00:23:51 GMT < Access-Control-Allow-Origin: http://www.example1.com < Access-Control-Allow-Methods: GET, PUT, POST, DELETE < Access-Control-Allow-Headers: Authorization < Access-Control-Expose-Headers: x-amz-meta-custom-header < Access-Control-Allow-Credentials: true < Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method < Server: AmazonS3 < Content-Length: 0