Testen CORS - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Testen CORS

Um Ihre CORS Konfiguration zu testen, kann mit dieser OPTIONS Methode eine CORS Preflight-Anfrage gesendet werden, sodass der Server antworten kann, ob das Senden der Anfrage akzeptabel ist. Wenn Amazon S3 eine Preflight-Anfrage erhält, bewertet S3 die CORS Konfiguration für den Bucket und verwendet die erste CORSRule Regel, die der eingehenden Anfrage entspricht, um eine ursprungsübergreifende Anfrage zu aktivieren. Für die Übereinstimmung mit einer Regel müssen die folgenden Bedingungen erfüllt sei:

  • Der Origin Header in einer CORS Anfrage an Ihren Bucket muss mit den Ursprüngen im AllowedOrigins Element in Ihrer Konfiguration übereinstimmen. CORS

  • Die HTTP Methoden, die Access-Control-Request-Method in einer CORS Anfrage an Ihren Bucket angegeben sind, müssen mit der oder den Methoden übereinstimmen, die in dem AllowedMethods Element in Ihrer CORS Konfiguration aufgeführt sind.

  • Die im Header einer Preflight-Anfrage aufgeführten Access-Control-Request-Headers Header müssen mit den Headern im AllowedHeaders Element in Ihrer Konfiguration übereinstimmen. CORS

Das Folgende ist ein Beispiel für eine Konfiguration. CORS Informationen zum Erstellen einer CORS Konfiguration finden Sie unter Konfiguration CORS. Weitere Beispiele für eine CORS Konfiguration finden Sie unter Elemente einer CORS Konfiguration.

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

Um die CORS Konfiguration zu testen, können Sie mit dem folgenden CURL Befehl einen OPTIONS Preflight-Check senden. CURList ein Befehlszeilentool, das für die Interaktion mit S3 verwendet werden kann. Weitere Informationen finden Sie unter. 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"

Im obigen Beispiel wird der curl -v -x OPTIONS Befehl verwendet, um eine Preflight-Anfrage an S3 zu senden, um abzufragen, ob S3 erlaubt ist, eine PUT Anfrage für ein Objekt vom Cross-Origin zu senden. http://www.example1.com Die Header Access-Control-Request-Headers und Access-Control-Expose-Headers sind optional.

  • Als Antwort auf den Access-Control-Request-Method Header in der OPTIONS Preflight-Anfrage gibt Amazon S3 die Liste der zulässigen Methoden zurück, wenn die angeforderten Methoden übereinstimmen.

  • Als Antwort auf den Access-Control-Request-Headers Header in der OPTIONS Preflight-Anfrage gibt Amazon S3 die Liste der zulässigen Header zurück, wenn die angeforderten Header übereinstimmen.

  • Als Antwort auf den Access-Control-Expose-Headers Header in der OPTIONS Preflight-Anfrage gibt Amazon S3 eine Liste der zulässigen Header zurück, wenn die angeforderten Header mit den erlaubten Headern übereinstimmen, auf die von Skripten zugegriffen werden kann, die im Browser ausgeführt werden.

Anmerkung

Wenn beim Senden einer Preflight-Anfrage einer der CORS Anforderungsheader nicht zulässig ist, wird keiner der Antwortheader zurückgegeben. CORS

Als Antwort auf diese OPTIONS Preflight-Anfrage erhalten Sie eine Antwort. 200 OK Allgemeine Fehlercodes, die beim Testen aufgetreten sind, CORS und weitere Informationen zur Lösung CORS verwandter Probleme finden Sie unter Problembehandlung 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