CORS#

Объектное хранилище позволяет настроить кросс-доменные запросы (Cross-Origin Resource Sharing, CORS) к объектам в бакете. Конфигурация CORS задаётся в документ XML, где определяются источники запроса и методы, которые они могут использовать для работы с бакетом.

PutBucketCors#

Задаёт конфигурацию CORS для бакета. Если конфигурация уже существует, то она заменяется на новую.

Пример запроса#

Разрешает запросы PUT и POST от https://user.domain.com и запросы GET из всех доменов.

Запрос
PUT /bucket1/?cors=null HTTP/1.1
Host: s3.k2.cloud
X-Amz-Content-Sha256: beaead3198f7da1e70d03ab969765e0821b24fc913697e929e726aeaebf0eba3
X-Amz-Date: 20220531T161223Z
Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220531/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=9ee865946317c62360192a2be260a11f94a7e4f90242f61e04668114a673429a
Content-Type: text/plain
Content-Length: 503

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>>https://user.domain.com</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
    </CORSRule>
    <CORSRule>
       <AllowedOrigin>*</AllowedOrigin>
       <AllowedMethod>GET</AllowedMethod>
    </CORSRule>
</CORSConfiguration>

Пример ответа#

Ответ
HTTP/1.1 200 OK
x-amz-request-id: tx0000000000000071b53a9-006296456b-37d64f12-default
content-type: application-xml
content-length: 0
date: Tue, 31 May 2022 10:26:24 GMT

GetBucketCors#

Возвращает конфигурацию CORS для бакета.

Пример запроса#

Запрос
GET /bucket1/?cors=null HTTP/1.1
Host: s3.k2.cloud
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20220601T072654Z
Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220601/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=99865af42e46017e4c3182f797fbb083727b519e122beccb70bb45f3e5722da4

Пример ответа#

Ответ
 HTTP/1.1 200 OK
 x-amz-request-id: tx000000000000007f1d3ff-00629714bd-41e627a3-default
 content-type: application-xml
 content-length: 317
 date: Wed, 01 Jun 2022 07:26:53 GMT

 <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <CORSRule>
      <AllowedMethod>PUT</AllowedMethod>
      <AllowedMethod>POST</AllowedMethod>
      <AllowedOrigin>https://user.domain.com</AllowedOrigin>
  </CORSRule>
  <CORSRule>
      <AllowedMethod>GET</AllowedMethod>
      <AllowedOrigin>*</AllowedOrigin>
  </CORSRule>
</CORSConfiguration>

DeleteBucketCors#

Удаляет конфигурацию CORS у бакета.

Пример запроса#

Запрос
DELETE /bucket1/?cors=null HTTP/1.1
Host: s3.k2.cloud
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20220601T074456Z
Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220601/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=8871c0fdae09ee6f3ef6e997536f1c33febbb224aad1831c3e21130259d3ac4b

Пример ответа#

Ответ
HTTP/1.1 204 No Content
x-amz-request-id: tx000000000000007fa7168-00629718f8-40173986-default
date: Wed, 01 Jun 2022 07:44:56 GMT