버킷 CORS 설정

기본적으로 버킷에는 CORS 구성이 설정되어 있지 않습니다. 기존 버킷의 CORS를 설정하거나 수정하려면 버킷으로 범위가 지정된 PUT 요청을 만들고 cors 쿼리 문자열 매개변수를 사용합니다. 적용하려는 하나 이상의 CORS 구성이 포함된 요청 본문에 XML 문서를 포함해야 합니다. 생성 중인 새 버킷에는 CORS 구성을 설정할 수 없습니다.

기존 버킷에 CORS 구성을 적용하려면 FULL_CONTROL 권한이 있어야 합니다. 또한 PUT Bucket 메서드를 사용하려면 인증을 받아야 합니다.

버킷에서 CORS 구성을 설정하는 방법에 대한 가이드는 교차 출처 리소스 공유 (CORS) 구성을 참조하세요.

쿼리 문자열 매개변수

매개변수 설명 필수
cors 이를 사용하여 기존 버킷의 CORS 구성을 변경합니다. CORS XML 문서는 요청 본문에 제공해야 합니다. 없음

서명된 URL을 만들고 사용할 때 포함되는 매개변수에 대한 정보는 서명된 URL 쿼리 문자열 매개변수를 참조하세요.

요청 헤더

일반적인 요청 헤더를 참조하세요.

요청 본문 요소

다음 다이어그램은 CORS 구성에서 XML 요소의 중첩을 보여줍니다. 추가 세부정보는 다이어그램 아래의 표를 참조하세요.

다음 요청 본문 요소는 cors 쿼리 문자열 매개변수를 사용하여 기존 버킷에 CORS를 지정하는 경우에만 적용됩니다.

요소 설명
CorsConfig 하나 이상의 Corp 구성 컨테이너의 컨테이너입니다. 여러 Cors 구성을 지정할 경우 CorsConfig 컨테이너 내에 나열된 순서대로 Corp 구성이 평가되며, 응답에 추가할 CORS 응답 헤더를 결정하는 데 사용되는 요청의 출처 및 메서드와 일치하는 첫 번째 구성이 구성됩니다. 을 엽니다.
Cors 버킷에 적용할 CORS 구성을 저장할 컨테이너입니다. 각 Corp 컨테이너에 여러 출발지 및 여러 메서드를 지정할 수 있습니다. 요청 원본이 Cors 컨테이너의 Origins와 일치하고 요청 메서드가 Cors 컨테이너의 메소드 중 하나와 일치하는 경우 매칭이 발생합니다.
Origins 이 Cloud Storage 버킷과의 교차 출처 리소스 공유가 허용되는 원본의 컨테이너입니다.
Origin 이 Cloud Storage 버킷과의 교차 출처 리소스를 공유할 수 있는 출처입니다. https://origin1.example.com). 와일드 카드 (<Origin>*</Origin>)로만 구성된 값을 입력하면 모든 출처에 대한 액세스 권한이 부여됩니다.
Methods 이 Cloud Storage 버킷과의 원본 출처 리소스 공유에서 허용되는 메서드를 지정하는 하나 이상의 HTTP 메서드 요소의 컨테이너입니다.
Method 이 구성에서 사용되는 HTTP 메서드입니다. 유효한 값은 DELETE, GET, HEAD, POST, PUT입니다. OPTIONS는 실행 전 요청으로 해석되므로 CORS 구성에 이 메서드를 지정할 필요가 없습니다.
ResponseHeaders 하나 이상의 ResponseHeader 요소에 대한 선택적 컨테이너입니다.
ResponseHeader 사용자 에이전트가 원본에서 공유할 수 있는 응답 헤더를 지정합니다.
MaxAgeSec 이 값은 실행 전 요청에 응답하는 데 사용되며, 이 속성은 클라이언트(브라우저)가 요청을 실행하기 전 요청을 보낼 수 있는 시간(초)을 나타냅니다. (캐시 만료 시간을 나타냅니다.) 요청 메서드에 단순하지 않은 헤더가 포함되어 있거나 요청 메서드가 POST, GET 또는 HEAD가 아닌 경우 실행 전 요청이 필요합니다. 실행 전 요청에 대한 응답으로 이 값은 Access-Control-Max-Age 헤더에서 반환됩니다.

요청 구문

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

응답 헤더

이 요청은 사용 중인 요청 헤더에 따라 다양한 응답 헤더를 반환할 수 있습니다.

응답 본문 요소

응답의 응답 본문에 XML 문서가 없습니다.

다음 샘플에서는 acme-pets라는 버킷에 CORS 구성을 설정합니다. 이 CORS 구성은 2개의 출처를 설정하고 이러한 출처에 허용되는 HTTP 메서드를 설정합니다. 이 예시에서는 사용 가능한 모든 HTTP 메서드가 허용됩니다.

요청

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>

응답

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