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