Standardmäßig ist für Buckets keine CORS-Konfiguration festgelegt. Wenn Sie CORS für einen vorhandenen Bucket festlegen oder ändern möchten, stellen Sie eine PUT-Anfrage, die für den Bucket gilt, und den Abfragestringparameter cors
. Fügen Sie in den Anfragetext ein XML-Dokument mit einer oder mehreren CORS-Konfigurationen ein, die Sie anwenden möchten. Beachten Sie, dass Sie die CORS-Konfiguration nicht für einen neuen Bucket festlegen können, den Sie erstellen.
Sie benötigen die Berechtigung FULL_CONTROL
, um eine CORS-Konfiguration auf einen vorhandenen Bucket anzuwenden. Außerdem müssen Sie authentifiziert sein, um die Methode PUT Bucket zu verwenden.
Eine Anleitung zum Festlegen von CORS-Konfigurationen für Buckets finden Sie unter Cross-Origin Resource Sharing (CORS) konfigurieren.
Abfragestringparameter
Parameter | Beschreibung | Erforderlich |
---|---|---|
cors |
Hiermit können Sie die CORS-Konfiguration für einen vorhandenen Bucket ändern. Sie müssen das CORS-XML-Dokument im Anfragetext angeben. | Nein |
Informationen zu den Parametern, die Sie beim Erstellen und Verwenden signierter URLs angeben müssen, finden Sie unter Stringparameter für signierte URLs.
Anfrageheader
Siehe Allgemeine Anfrageheader.
Anfragetextelemente
Das folgende Diagramm zeigt das Verschachteln von XML-Elementen in der CORS-Konfiguration. Weitere Informationen finden Sie in der Tabelle unter dem Diagramm.
Die folgenden Anfragetextelemente gelten nur, wenn Sie für den vorhandenen Bucket den Abfragestringparameter cors
verwenden.
Element | Beschreibung |
---|---|
CorsConfig |
Container für einen oder mehrere Cors-Konfigurationscontainer. Wenn Sie mehrere Cors-Konfigurationen angeben, werden die Cors-Konfigurationen in der Reihenfolge ausgewertet, die im CorsConfig-Container aufgeführt ist. Die erste Cors-Konfiguration stimmt mit dem Ursprung und der Methode der Anfrage überein, anhand derer die CORS-Antwortheader festgelegt werden, die der Antwort hinzugefügt werden sollen. auf. |
Cors |
Container für eine CORS-Konfiguration, die auf den Bucket angewendet werden soll Sie können in jedem Cors-Container mehrere Ursprünge und mehrere Methoden angeben. Eine Übereinstimmung wird gefunden, wenn die Ursprung von Anfragen mit einem der Ursprünge im Cors-Container übereinstimmt und die Anfragemethode mit einer der Methoden im Cors-Container übereinstimmt. |
Origins |
Container für die Ursprünge, die für die Cross-Origin Resource Sharing mit diesem Cloud Storage-Bucket zulässig sind. |
Origin |
Ein Ursprung, der für die Cross-Origin Resource Sharing mit diesem Cloud Storage-Bucket zulässig ist. z. B. https://origin1.example.com . Wenn Sie einen Wert angeben, der nur aus dem Platzhalter (<Origin>*</Origin> ) besteht, hat dies Zugriff auf ALLE Ursprünge. |
Methods |
Container für mindestens ein HTTP-Methodenelement, das die Methoden angibt, die in diesem Cross-Origin Resource Sharing mit diesem Cloud Storage-Bucket zulässig sind. |
Method |
In dieser Konfiguration verwendete HTTP-Methode. Gültige Werte sind DELETE , GET , HEAD , POST und PUT .
OPTIONS wird als Preflight-Anfrage interpretiert. Sie müssen diese Methode daher nicht in der CORS-Konfiguration angeben. |
ResponseHeaders |
Optionaler Container für mindestens ein ResponseHeader-Element |
ResponseHeader |
Gibt einen Antwort-Header an, den der User-Agent über mehrere Quellen hinweg freigeben darf. |
MaxAgeSec |
Dieser Wert wird verwendet, um auf Preflight-Anfragen zu antworten. Dieser Wert gibt an, wie viele Sekunden der Client (Browser) Anfragen stellen darf, bevor der Client die Preflight-Anfrage wiederholen muss. Gibt die Cache-Ablaufzeit an. Preflight-Anfragen sind erforderlich, wenn die Anfragemethode nicht einfache Header enthält oder wenn die Anfragemethode nicht POST, GET oder HEAD ist. Der Wert wird im Header "Access-Control-Max-Age" als Antwort auf Preflight-Anfragen zurückgegeben. |
Anfragesyntax
PUT /?cors HTTP/1.1 Host: BUCKET_NAME.storage.googleapis.com Date: DATE_AND_TIME_OF_REQUEST Content-Length: REQUEST_BODY_LENGTH Content-Type: MIME_TYPE_OF_THE_BODY Authorization: AUTHENTICATION_STRING XML_DOCUMENT_DEFINING_CORS
Antwortheader
Die Anfrage kann je nach verwendetem Anfrage-Header eine Vielzahl von Antwort-Headern zurückgeben.
Antworttextelemente
Die Antwort enthält kein XML-Dokument im Antworttext.
Beispiel
Im folgenden Beispiel wird eine CORS-Konfiguration für den Bucket acme-pets festgelegt. Diese CORS-Konfiguration legt zwei Ursprünge und die für diese Ursprünge zulässigen HTTP-Methoden fest. In diesem Beispiel sind alle verfügbaren HTTP-Methoden zulässig.
Anfrage
PUT /?cors HTTP/1.1 Host: acme-pets.storage.googleapis.com Date: Thu, 12 Mar 2012 03:38:42 GMT Content-Length: 1320 Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg <?xml version="1.0" encoding="UTF-8"?> <CorsConfig> <Cors> <Origins> <Origin>http://origin1.example.com</Origin> <Origin>http://origin2.example.com</Origin> </Origins> <Methods> <Method>GET</Method> <Method>HEAD</Method> <Method>PUT</Method> <Method>POST</Method> <Method>DELETE</Method> </Methods> <ResponseHeaders> <ResponseHeader>x-goog-meta-foo1</ResponseHeader> <ResponseHeader>x-goog-meta-foo2</ResponseHeader> </ResponseHeaders> <MaxAgeSec>1800</MaxAgeSec> </Cors> </CorsConfig>
Antwort
HTTP/1.1 200 OK Date: Thu, 12 Mar 2012 03:38:42 GMT Expires: Mon, 01 Jan 1990 00:00:00 GMT Cache-Control: no-cache, no-store, must-revalidate Content-Length: 0 Content-Type: text/html