Testen von 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 von CORS

Um Ihre CORS-Konfiguration zu testen, können Sie mit der OPTIONS-Methode eine CORS-Preflight-Anfrage senden, sodass der Server antworten kann, falls das Senden der Anfrage akzeptiert wird. Wenn Amazon S3 eine Preflight-Anfrage erhält, wertet S3 die CORS-Konfiguration für den Bucket aus und verwendet die erste CORSRule-Regel, die der eingehenden Browser-Anfrage entspricht, um eine ursprungsübergreifende Anfrage zuzulassen. 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 den Ursprüngen im Element AllowedOrigins Ihrer CORS-Konfiguration entsprechen.

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

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

Im Folgenden finden Sie eine CORS-Beispielkonfiguration. Informationen zum Erstellen einer CORS-Konfiguration finden Sie unter Konfigurieren von 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 eine OPTIONS-Preflight-Prüfung senden. CURL ist ein Befehlszeilentool für die Interaktion mit S3. 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 und abzufragen, ob S3 es erlaubt, eine PUT-Anforderung für ein Objekt vom übergreifenden Ursprung http://www.example1.com zu senden. Die Header Access-Control-Request-Headers und Access-Control-Expose-Headers sind optional.

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

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

  • Als Antwort auf den Header Access-Control-Expose-Headers in der OPTIONS-Preflight-Anfrage gibt Amazon S3 eine Liste der zulässigen Header zurück, wenn die angeforderten Header den zulässigen Headern entsprechen, auf die über im Browser ausgeführte Skripts zugegriffen werden kann.

Anmerkung

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

Als Antwort auf die OPTIONS-Preflight-Anfrage erhalten Sie die Antwort 200 OK. Allgemeine Fehlercodes, die Sie beim Testen von CORS erhalten können, und weitere Informationen zur Lösung von Problemen rund um CORS finden Sie unter CORS-Fehlerbehebung.

< 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