Todos os produtos
Search
Central de documentação

Object Storage Service:PutBucketCors

Última atualização: Aug 28, 2026

Configure regras de compartilhamento de recursos de origem cruzada (CORS) para um bucket.

Observações de uso

  • Desativado por padrão

    O CORS está desativado por padrão. O sistema bloqueia todas as solicitações de origem cruzada.

  • Mecanismo de substituição

    As novas regras de CORS configuradas pelo PutBucketCors substituem todas as regras existentes no bucket.

  • Uso do CORS em aplicações

    Chame o PutBucketCors para configurar as regras de CORS antes de usar o recurso nas aplicações.

    Por exemplo, para permitir que example.com acesse o OSS pelo navegador via XMLHttpRequest, configure uma regra de CORS em XML com esta operação.

  • Correspondência de regras de CORS

    Ao receber uma solicitação de origem cruzada ou OPTIONS para um bucket, o OSS verifica as regras de CORS configuradas sequencialmente e retorna os cabeçalhos da primeira correspondência. Se nenhuma regra corresponder, o OSS não incluirá cabeçalhos CORS na resposta.

    Uma solicitação corresponde a uma regra de CORS apenas quando atende a todas as condições a seguir:

    • A origem da solicitação corresponde a um valor AllowedOrigin na regra.

    • O método da solicitação ou o valor do cabeçalho Access-Control-Request-Method corresponde a um valor AllowedMethod.

    • Cada cabeçalho em Access-Control-Request-Headers corresponde a um valor AllowedHeader.

Permissões

Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não têm permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de RAM policies ou Bucket Policy.

API

Action

Description

PutBucketCors

oss:PutBucketCors

Configure regras de compartilhamento de recursos de origem cruzada (CORS) para um bucket.

Sintaxe da solicitação

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 >

Elementos da solicitação

Element

Type

Required

Example

Description

CORSRule

Container

Yes

N/A

Contêiner que armazena as regras de CORS.

Limite: 20 regras de CORS por bucket. Tamanho máximo do corpo da solicitação: 16 KB.

Nó pai: CORSConfiguration

AllowedOrigin

String

Yes

*

Origem permitida para solicitações de origem cruzada. Especifique vários elementos para múltiplas origens.

O caractere curinga asterisco (*) permite todas as origens. Há suporte a apenas um caractere curinga por elemento.

Nó pai: CORSRule

AllowedMethod

Enumeration

Yes

GET

Método de solicitação de origem cruzada permitido. Valores válidos: GET, PUT, DELETE, POST e HEAD.

Nó pai: CORSRule

AllowedHeader

String

No

Authorization

Cabeçalhos permitidos nas solicitações de origem cruzada, validados em relação ao Access-Control-Request-Headers nas solicitações de preflight.

Cada cabeçalho em Access-Control-Request-Headers deve corresponder a um valor AllowedHeader.

Importante

Use apenas um asterisco (*) como caractere curinga para AllowedHeader. Não há suporte aos seguintes caracteres:

  • <

  • >

  • &

  • '

  • "

Nó pai: CORSRule

ExposeHeader

String

No

x-oss-test

Cabeçalhos de resposta acessíveis a aplicações cliente, como JavaScript XMLHttpRequest.

Importante

Não há suporte aos seguintes caracteres:

  • *

  • <

  • >

  • &

  • '

  • "

Nó pai: CORSRule

MaxAgeSeconds

Integer

No

100

Tempo de cache da resposta de preflight no navegador. Unidade: segundos.

É permitido apenas um elemento MaxAgeSeconds por regra de CORS.

Nó pai: CORSRule

CORSConfiguration

Container

Yes

N/A

Contêiner que armazena as configurações de CORS do bucket.

Nó pai: nenhum

ResponseVary

Boolean

No

false

Define se o cabeçalho Vary: Origin deve ser retornado. Valores válidos:

  • true: Retorna o cabeçalho Vary: Origin independentemente de a solicitação ser de origem cruzada ou ter sucesso.

  • false: Não retorna o cabeçalho Vary: Origin.

Importante

Válido apenas quando há pelo menos uma regra de CORS configurada.

Esta operação também usa Common HTTP headers.

Cabeçalhos de resposta

As respostas do PutBucketCors contêm apenas Common HTTP headers.

Exemplos

  • Exemplo de solicitação

    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 >
  • Exemplo de resposta

    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

Os seguintes SDKs do OSS oferecem suporte ao PutBucketCors:

ossutil

Para obter informações sobre o comando ossutil correspondente à operação PutBucketCors, consulte put-bucket-cors.

Códigos de erro

Error code

HTTP status code

Description

InvalidDigest

400

O valor Content-MD5 calculado a partir do corpo da solicitação não corresponde ao valor Content-MD5 no cabeçalho da solicitação.