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.comacesse o OSS pelo navegador viaXMLHttpRequest, 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
AllowedOriginna regra.O método da solicitação ou o valor do cabeçalho
Access-Control-Request-Methodcorresponde a um valorAllowedMethod.Cada cabeçalho em
Access-Control-Request-Headerscorresponde a um valorAllowedHeader.
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 Cada cabeçalho em 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:
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. |