Définir le CORS sur le bucket

Par défaut, aucune configuration CORS n'est définie pour les buckets. Pour définir ou modifier le CORS d'un bucket existant, exécutez une requête PUT limitée au bucket et utilisez le paramètre de chaîne de requête cors. Vous devez inclure un document XML dans le corps de la requête contenant une ou plusieurs configurations CORS à appliquer. Notez que vous ne pouvez pas définir de configuration CORS sur un nouveau bucket que vous créez.

Vous devez disposer de l'autorisation FULL_CONTROL pour appliquer une configuration CORS à un bucket existant. Vous devez également vous authentifier pour utiliser la méthode PUT Bucket.

Pour savoir comment définir des configurations CORS sur des buckets, consultez la page Configurer le partage des ressources entre origines multiples (CORS).

Paramètres de la chaîne de requête

Paramètre Description Requis
cors Il permet de modifier la configuration CORS d'un bucket existant. Vous devez fournir le document XML CORS dans le corps de la requête. Non

Pour en savoir plus sur les paramètres à inclure lors de la création et de l'utilisation d'URL signées, consultez la section Paramètres des chaînes de requête d'URL signée.

En-têtes de requête

Voir les en-têtes de requêtes courants.

Éléments du corps de la requête

Le schéma suivant illustre l'imbrication des éléments XML dans la configuration CORS. Pour en savoir plus, consultez le tableau situé sous le schéma.

Les éléments de corps de requête suivants ne sont disponibles que si vous utilisez le paramètre de chaîne de requête cors pour spécifier le CORS pour un bucket existant.

Élément Description
CorsConfig Conteneur pour un ou plusieurs conteneurs de configuration Cors. Si vous spécifiez plusieurs configurations "Cors", sachez que les configurations Cors seront évaluées dans l'ordre indiqué dans le conteneur CorsConfig, la première configuration Cors correspondant à l'origine et la méthode de la requête utilisée pour déterminer les en-têtes de réponse CORS à ajouter à la réponse. s'affiche en haut de l'écran.
Cors Conteneur pour une configuration CORS à appliquer au bucket. Vous pouvez spécifier plusieurs origines et plusieurs méthodes dans chaque conteneur Cors. Il existe une correspondance si l'origine de la requête correspond à l'un des origines du conteneur Cors et que la méthode de requête correspond à l'une des méthodes du conteneur Cors.
Origins Conteneur des origines autorisées pour le partage des ressources entre origines multiples avec ce bucket Cloud Storage.
Origin Origine autorisée pour le partage des ressources entre origines multiples avec ce bucket Cloud Storage. Par exemple, https://origin1.example.com. Si vous indiquez une valeur composée uniquement du caractère générique (<Origin>*</Origin>), cela permet d'accéder à TOUS les origines.
Methods Conteneur pour un ou plusieurs éléments de méthode HTTP, en spécifiant les méthodes autorisées pour le partage de ressources d'origines croisée avec ce bucket Cloud Storage.
Method Méthode HTTP utilisée dans cette configuration. Les valeurs valides sont DELETE, GET, HEAD, POST et PUT. OPTIONS est interprété comme une requête préliminaire, vous n'avez donc pas besoin de spécifier cette méthode dans votre configuration CORS.
ResponseHeaders Conteneur facultatif pour un ou plusieurs éléments ResponseHeader.
ResponseHeader Spécifie un en-tête de réponse que le user-agent est autorisé à partager entre les origines.
MaxAgeSec Cette valeur permet de répondre aux requêtes préliminaires, ce qui indique le nombre de secondes pendant lesquelles le client (navigateur) est autorisé à effectuer des requêtes avant que le client ne doive répéter la requête de pré-vérification. (Indique le délai d'expiration du cache.) Les requêtes préalables sont obligatoires si la méthode de requête contient des en-têtes non simples ou si la méthode de requête n'est pas POST, GET ou HEAD. La valeur est renvoyée dans l'en-tête Access-Control-Max-Age dans les réponses aux requêtes préliminaires.

Syntaxe des requêtes

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

En-têtes de réponse

La requête peut renvoyer divers en-têtes de réponse en fonction des en-têtes de requête que vous utilisez.

Éléments du corps de la réponse

La réponse n'inclut pas de document XML dans le corps de la réponse.

Exemple

L'exemple suivant définit une configuration CORS sur un bucket nommé "acme-pets". Cette configuration CORS définit deux origines et les méthodes HTTP autorisées pour ces origines. Dans cet exemple, toutes les méthodes HTTP disponibles sont autorisées.

Requête

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>

Réponse

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