Test du 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.

Test du CORS

Pour tester votre configuration CORS, une demande de contrôle en amont CORS peut être envoyée avec la méthode OPTIONS afin que le serveur puisse répondre s’il est acceptable d’envoyer la demande. Quand Amazon S3 reçoit une demande de contrôle en amont, S3 évalue la configuration CORS du compartiment et utilise la première règle CORSRule qui correspond à la demande entrante pour permettre une demande cross-origin. Pour qu’une règle corresponde, les conditions suivantes doivent être remplies :

  • L’en-tête Origin d’une demande CORS adressée à votre compartiment doit correspondre aux origines de l’élément AllowedOrigins de votre configuration CORS.

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

  • Les en-têtes répertoriés dans l’en-tête Access-Control-Request-Headers d’une demande de contrôle en amont doivent correspondre aux en-têtes de l’élément AllowedHeaders de votre configuration CORS.

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

Pour obtenir des conseils sur la configuration et le dépannage des règles CORS, consultez Comment configurer le CORS dans Amazon S3 et confirmer les règles CORS à l'aide de cURL ? dans le AWS re:Post Knowledge Center.

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

Pour tester la configuration CORS, vous pouvez envoyer un contrôle OPTIONS en amont à l’aide de la commande CURL suivante. CURL est 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 commande curl -v -x OPTIONS est utilisée pour envoyer une demande de contrôle en amont à S3 afin de savoir si S3 autorise l’envoi d’une demande PUT sur un objet à partir de l’adresse http://www.example1.com d’origines multiples. Les en-têtes Access-Control-Request-Headers et Access-Control-Expose-Headers sont facultatifs.

  • En réponse à l’en-tête Access-Control-Request-Method de la demande OPTIONS de contrôle en amont, Amazon S3 renvoie la liste des méthodes autorisées si les méthodes demandées correspondent.

  • En réponse à l’en-tête Access-Control-Request-Headers de la demande OPTIONS de contrôle en amont, Amazon S3 renvoie la liste des méthodes autorisées si les en-têtes demandés correspondent.

  • En réponse à l’en-tête Access-Control-Expose-Headers de la demande OPTIONS de contrôle en amont, Amazon S3 renvoie la 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 s’exécutant dans le navigateur.

Note

Lors de l’envoi d’une demande de contrôle en amont, si un ou des en-têtes de demande CORS ne sont pas autorisés, aucun des en-têtes CORS de réponse n’est renvoyé.

En réponse à cette demande OPTIONS de contrôle en amont, vous recevrez une réponse 200 OK. Pour les codes d’erreur courants reçus lors du test du partage CORS et pour plus d’informations sur la résolution des problèmes liés au partage CORS, consultez Résolution des problèmes liés au CORS.

< 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