Bucket-CORS festlegen

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