Updated on 2026-07-27 GMT+08:00

Obtaining the CORS Configuration of a Bucket

Function

This API obtains the CORS configuration of a bucket. For more information about CORS, see Configuring CORS to Allow Cross-Origin Access to OBS.

Authorization

To call this API, you must be the bucket owner or have the permission to obtain the CORS configuration of a bucket. You are advised to use IAM or bucket policies for authorization. For details about OBS authorization methods, see Differences Between OBS Permissions Control Methods.

  • If you use IAM for authorization, you need to use either role/policy-based authorization or identity policy-based authorization and configure the required permissions:
    • If you use role/policy-based authorization (IAM v3 APIs in the old IAM version), you must have the obs:bucket:GetBucketCORS permission. For details, see Creating a Custom IAM Policy.
    • If you use identity policy-based authorization (IAM v5 APIs in the new IAM version), you must have the obs:bucket:getBucketCORS permission, as shown in the following table. For details, see Creating a Custom IAM Identity Policy.

      Action

      Access Level

      Resource Type (*: Required)

      Condition Key

      Alias

      Dependencies

      obs:bucket:getBucketCORS

      Read

      bucket *

      -

      -

      -

      • obs:EpochTime
      • obs:SourceIp
      • obs:TlsVersion
      • obs:CustomDomain
  • If you use bucket policies for authorization, you must have the obs:bucket:GetBucketCORS permission. For details, see Creating a Custom Bucket Policy.

URI

GET /

Calling Method

For details, see Calling APIs. Before calling this API, calculate the API signature and add it to the request.

You can debug this API in API Explorer.

Request Syntax

1
2
3
4
GET /?cors HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date
Authorization: authorization

URI Parameters

In this request, the ?cors parameter in the URI identifies the request as related to CORS. No other URI parameters are required.

Request Headers

This request uses common headers. For details, see Table 3.

Request Body

This request contains no request body parameters.

Response Syntax

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
HTTP/1.1 status_code
Content-Type:  application/xml 
Date: date
Content-Length: length

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<CORSConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
    <CORSRule> 
        ... 
    </CORSRule> 
</CORSConfiguration>

Response Headers

This response uses common headers. For details, see Table 1.

Response Body

Table 1 describes the elements included in the response body.

Table 1 CORS configuration elements

Parameter

Type

Description

CORSConfiguration

Container

Definition

Root node of CORSRule. It cannot exceed 64 KB.

Range

N/A

CORSRule

Container

Definition

A CORS rule. CORSConfiguration can contain a maximum of 100 rules. CORSConfiguration is the parent node of CORSRule.

Range

N/A

ID

String

Definition

Unique identifier of a rule. The value can contain a maximum of 255 characters. CORSRule is the parent node of ID.

Range

N/A

AllowedMethod

String

Definition

Method allowed by the CORS rule. CORSRule is the parent node of AllowedMethod.

Range

GET: Retrieve

PUT: Write or modify

HEAD: Query information

POST: Write or modify

DELETE: Remove

AllowedOrigin

String

Definition

Origin (domain name) that is allowed by the CORS rule. It can contain 0 to 20,480 characters. Each AllowedOrigin allows at most one wildcard character (*). CORSRule is the parent node of AllowedOrigin.

Range

N/A

AllowedHeader

String

Definition

Headers that can be included in Access-Control-Request-Headers of CORS requests. The value contains 0 to 20,480 characters. If a request includes Access-Control-Request-Headers, only a CORS request that matches the configuration of AllowedHeader is considered as a valid request. Each AllowedHeader can contain at most one wildcard (*) and cannot contain spaces. CORSRule is the parent node of AllowedHeader.

Range

N/A

MaxAgeSeconds

Integer

Definition

Time in seconds that the client can cache CORS responses.

Each CORS rule can contain at most one MaxAgeSeconds. CORSRule is the parent node of MaxAgeSeconds.

Range

A positive integer

ExposeHeader

String

Definition

An additional header in CORS responses. It provides additional information for clients and cannot contain spaces. CORSRule is the parent node of ExposeHeader.

Range

A valid header

Error Responses

Table 2 describes possible special errors in this request.

Table 2 Special error

Error

Description

HTTP Status Code

NoSuchCORSConfiguration

Indicates that the CORS configuration of buckets does not exist.

404 Not Found

Refer to Error Code Overview for all other errors.

Sample Request

1
2
3
4
5
6
GET /?cors HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: Wed, 01 Jul 2015 03:54:36 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:WJGghTrPQQXRuCx5go1fHyE+Wwg=

Sample Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF2600000164363593F10738B80CACBE
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSpngvwC5TskcLGh7Fz5KRmCFIayuY8p
Content-Type: application/xml
Date: Wed, 01 Jul 2015 03:54:36 GMT
Content-Length: 825

<?xml version="1.0" encoding="utf-8"?> 
<CORSConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
  <CORSRule> 
    <ID>783fc6652cf246c096ea836694f71855</ID>  
    <AllowedMethod>POST</AllowedMethod>  
    <AllowedMethod>GET</AllowedMethod>  
    <AllowedMethod>HEAD</AllowedMethod>  
    <AllowedMethod>PUT</AllowedMethod>  
    <AllowedMethod>DELETE</AllowedMethod>  
 
    <AllowedOrigin>obs.ap-southeast-1.myhuaweicloud.com</AllowedOrigin> 
    <AllowedOrigin>obs.example.com</AllowedOrigin>  
    <AllowedOrigin>www.example.com</AllowedOrigin>  
    <AllowedHeader>AllowedHeader_1</AllowedHeader>  
    <AllowedHeader>AllowedHeader_2</AllowedHeader>  
    <MaxAgeSeconds>100</MaxAgeSeconds>  
    <ExposeHeader>ExposeHeader_1</ExposeHeader>  
    <ExposeHeader>ExposeHeader_2</ExposeHeader>
  </CORSRule>
</CORSConfiguration>

Using SDKs to Call APIs

You are advised to use OBS SDKs to call APIs. SDKs encapsulate APIs to simplify development. You can call SDK API functions to access OBS without manually calculating signatures.

Java

Python

C

Go

BrowserJS: not supported

.NET

Android

iOS

PHP

Node.js