Tous les produits
Search
Centre de documentation

Object Storage Service:PutBucketCors

Dernière mise à jour :Aug 28, 2026

Configure les règles de partage de ressources entre origines multiples (CORS) pour un compartiment.

Remarques d'utilisation

  • Désactivation par défaut

    Le CORS est désactivé par défaut. Toutes les requêtes inter-origines sont interdites.

  • Écrasement des règles existantes

    Les nouvelles règles CORS configurées via PutBucketCors écrasent toutes les règles CORS existantes du compartiment.

  • Utilisation du CORS dans les applications

    Appelez PutBucketCors pour configurer les règles CORS avant d'utiliser le CORS dans vos applications.

    Par exemple, pour autoriser example.com à accéder à OSS via le navigateur en utilisant XMLHttpRequest, configurez une règle CORS au format XML à l'aide de cette opération.

  • Correspondance des règles CORS

    Lorsque OSS reçoit une requête inter-origines ou une requête OPTIONS pour un compartiment, il vérifie séquentiellement les règles CORS configurées et renvoie les en-têtes correspondants pour la première correspondance trouvée. Si aucune règle ne correspond, OSS n'inclut pas d'en-têtes CORS dans la réponse.

    Une requête correspond à une règle CORS uniquement si toutes les conditions suivantes sont remplies :

    • L'origine de la requête correspond à une valeur AllowedOrigin définie dans la règle.

    • La méthode de la requête ou la valeur de l'en-tête Access-Control-Request-Method correspond à une valeur AllowedMethod.

    • Chaque en-tête présent dans Access-Control-Request-Headers correspond à une valeur AllowedHeader.

Permissions

Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM associés à un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'opération via des politiques RAM ou une Bucket Policy.

API

Action

Description

PutBucketCors

oss:PutBucketCors

Configure les règles de partage de ressources entre origines multiples (CORS) pour un compartiment.

Syntaxe de la requête

PUT /?cors HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration>
    <CORSRule>
      <AllowedOrigin>the origin you want allow CORS request from</AllowedOrigin>
      <AllowedOrigin>…</AllowedOrigin>
      <AllowedMethod>HTTP method</AllowedMethod>
      <AllowedMethod>…</AllowedMethod>
        <AllowedHeader> headers that allowed browser to send</AllowedHeader>
          <AllowedHeader>…</AllowedHeader>
          <ExposeHeader> headers in response that can access from client app</ExposeHeader>
          <ExposeHeader>…</ExposeHeader>
          <MaxAgeSeconds>time to cache pre-fight response</MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
      ...
    </CORSRule>
...
</CORSConfiguration >

Éléments de la requête

Element

Type

Required

Example

Description

CORSRule

Container

Yes

N/A

Conteneur qui stocke les règles CORS.

Maximum : 20 règles CORS par compartiment. Taille maximale du corps de la requête : 16 Ko.

Nœuds parents : CORSConfiguration

AllowedOrigin

String

Yes

*

Origine de la requête inter-origines autorisée. Spécifiez plusieurs éléments pour plusieurs origines.

Un astérisque (*) comme caractère générique autorise toutes les origines. Un seul caractère générique est pris en charge par élément.

Nœuds parents : CORSRule

AllowedMethod

Enumeration

Yes

GET

Méthode de requête inter-origines autorisée. Valeurs valides : GET, PUT, DELETE, POST et HEAD.

Nœuds parents : CORSRule

AllowedHeader

String

No

Authorization

En-têtes autorisés dans les requêtes inter-origines, validés par rapport à Access-Control-Request-Headers dans les requêtes de pré-vérification.

Chaque en-tête présent dans Access-Control-Request-Headers doit correspondre à une valeur AllowedHeader.

Important

Vous ne pouvez utiliser qu'un seul astérisque (*) comme caractère générique pour AllowedHeader. Les caractères suivants ne sont pas pris en charge :

  • <

  • >

  • &

  • '

  • "

Nœuds parents : CORSRule

ExposeHeader

String

No

x-oss-test

En-têtes de réponse accessibles aux applications clientes telles que JavaScript XMLHttpRequest.

Important

Les caractères suivants ne sont pas pris en charge :

  • *

  • <

  • >

  • &

  • '

  • "

Nœuds parents : CORSRule

MaxAgeSeconds

Integer

No

100

Durée pendant laquelle le navigateur peut mettre en cache la réponse de pré-vérification. Unité : secondes.

Un seul élément MaxAgeSeconds est autorisé par règle CORS.

Nœuds parents : CORSRule

CORSConfiguration

Container

Yes

N/A

Conteneur qui stocke les configurations CORS du compartiment.

Nœuds parents : aucun

ResponseVary

Boolean

No

false

Indique s'il faut renvoyer l'en-tête Vary: Origin. Valeurs valides :

  • true : Renvoie l'en-tête Vary: Origin, que la requête soit inter-origines ou non et qu'elle réussisse ou non.

  • false : ne renvoie pas l'en-tête Vary: Origin.

Important

Valide uniquement lorsqu'au moins une règle CORS est configurée.

Cette opération utilise également des en-têtes HTTP communs.

En-têtes de réponse

Les réponses PutBucketCors contiennent uniquement des en-têtes HTTP communs.

Exemples

  • Exemple de requête

    PUT /?cors HTTP/1.1
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Content-Length: 186
    Date: Fri, 04 May 2012 03:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfiguration>
        <CORSRule>
          <AllowedOrigin>*</AllowedOrigin>
          <AllowedMethod>PUT</AllowedMethod>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader>Authorization</AllowedHeader>
        </CORSRule>
        <CORSRule>
          <AllowedOrigin>http://example.com</AllowedOrigin>
          <AllowedOrigin>http://example.net</AllowedOrigin>
          <AllowedMethod>GET</AllowedMethod>
          <AllowedHeader> Authorization</AllowedHeader>
          <ExposeHeader>x-oss-test</ExposeHeader>
          <ExposeHeader>x-oss-test1</ExposeHeader>
          <MaxAgeSeconds>100</MaxAgeSeconds>
        </CORSRule>
        <ResponseVary>false</ResponseVary>
    </CORSConfiguration >
  • Exemple de réponse

    HTTP/1.1 200 OK
    x-oss-request-id: 50519080C4689A033D0*****
    Date: Fri, 04 May 2012 03:21:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
    x-oss-server-time: 94

SDK

Les SDK OSS suivants prennent en charge PutBucketCors :

ossutil

Pour plus d'informations sur la commande ossutil correspondant à l'opération PutBucketCors, consultez put-bucket-cors.

Codes d'erreur

Error code

HTTP status code

Description

InvalidDigest

400

La valeur Content-MD5 calculée à partir du corps de la requête ne correspond pas à la valeur Content-MD5 présente dans l'en-tête de la requête.