CORS
VK Object Storage сервисі бакеттің CORS конфигурациясын басқаруға мүмкіндік береді. CORS конфигурациясын жүктеу үшін XML-құжатты қалыптастыру қажет.
Бакеттің CORS конфигурациялары үшін қолжетімді әдістер тізімі:
- GetBucketCORS — бакет үшін CORS конфигурацияларының тізімін алу.
- PutBucketCORS — CORS конфигурациясын орнату.
- DeleteBucketCORS — CORS конфигурациясын жою.
<CORSConfiguration><CORSRule><AllowedOrigin>URL</AllowedOrigin><AllowedMethod>HTTP_Method</AllowedMethod><AllowedHeader>Header_Name</AllowedHeader>...</CORSRule>...</CORSConfiguration>
GET операциясы бакет үшін орнатылған CORS конфигурациясы туралы ақпаратты қайтарады.
Бұл операцияны пайдалану үшін WRITE_ACP жазу құқықтарына ие болу қажет. Бакет иесінде бұл рұқсат әдепкі бойынша бар және ол оны басқа пайдаланушыларға бере алады.
Сұрау мысалы:
GET /?cors HTTP/1.1Host: my-test-bucket1.hb.ru-msk.vkcloud-storage.rux-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855x-amz-date: 20200831T185319ZAuthorization: AWS4-HMAC-SHA256 Credential=II5JDQBAN3JYM4DNEB6C/20200831/ru-msk/s3/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date,Signature=f7d7879992a9f3a06ddacd59e53ac318e99b2ed6230692b30099739e34469a91
Жауап мысалы:
HTTP/1.1 200 OKDate: Mon, 31 Aug 2020 18:53:20 GMTx-amz-request-id: tx00000000000000279651f-005963cd20-1268c-ru-mskaContent-Type: application/xmlContent-Length: 430Connection: close<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><CORSRule><AllowedMethod>PUT</AllowedMethod><AllowedMethod>DELETE</AllowedMethod><AllowedMethod>POST</AllowedMethod><AllowedOrigin>http://example.com</AllowedOrigin><AllowedHeader>\*</AllowedHeader></CORSRule><CORSRule><AllowedMethod>GET</AllowedMethod><AllowedOrigin>\*</AllowedOrigin></CORSRule></CORSConfiguration>
PUT операциясы бакет үшін CORS конфигурациясын орнатады. Егер конфигурация бұрыннан бар болса, ол қайта жазылады.
Бұл операцияны пайдалану үшін WRITE_ACP жазу құқықтарына ие болу қажет.
Бұл конфигурацияны бакетте Cross-origin сұрауларын өңдей алатындай етіп орнатуға болады. Мысалы, браузердің XMLHttpRequest функционалдығын пайдаланып, http://www.example.com көзінен my.example.bucket.com бакетіне сұрауға қол жеткізуді беруге болады.
Әртүрлі көздер арасындағы ресурстарды бірлесіп пайдалануға (CORS) рұқсат беру үшін бакетке CORS ішкіресурсын қосу қажет. CORS ішкіресурсы — бұл XML-құжат, онда бакетте пайдалануға болатын көздер мен HTTP әдістерін анықтайтын ережелер бапталады. Құжаттың ең үлкен өлшемі — 64 КБ. Мысалы, бакеттегі CORS конфигурациясында төмендегі екі ереже орнатылуы мүмкін:
- Бірінші CORSRule ережесі
https://www.example.comкөздерінен Cross-originPUT,POSTжәнеDELETEсұрауларын пайдалануға рұқсат етеді. Бұл ереже сондай-ақAccess-Control-Request-Headersтақырыбы арқылыOPTIONSалдын ала (preflight) сұрауында барлық тақырыптарды пайдалануға рұқсат етеді. Демек, кез келгенOPTIONSалдын ала сұрауына жауап ретінде сервис сұралған кез келген тақырыпты қайтарады. - Екінші ереже барлық көздерден Cross-origin
GETсұрауларын пайдалануға рұқсат етеді.*қойылмалы таңбасы кез келген көзді пайдалануға болатынын көрсетеді.
Сұрау мысалы:
PUT /?cors HTTP/1.1Host: my-test-bucket1.hb.ru-msk.vkcloud-storage.ruContent-Length: 374Content-Type: application/xmlx-amz-content-sha256: 745320970930725bd18820ec990f7334960f0a47358be189e77504cc094be77ex-amz-date: 20200831T185043ZAuthorization: AWS4-HMAC-SHA256 Credential=II5JDQBAN3JYM4DNEB6C/20200831/ru-msk/s3/aws4_request,SignedHeaders=content-md5;content-type;host;x-amz-content-sha256;x-amz-date,Signature=f52b2bfb6ec975c86cadd2e51a6ee9842c6151b737e46ce90a3cb3cc0d0dea97<CORSConfiguration><CORSRule><AllowedOrigin>http://example.com</AllowedOrigin><AllowedMethod>PUT</AllowedMethod><AllowedMethod>POST</AllowedMethod><AllowedMethod>DELETE</AllowedMethod><AllowedHeader>\*</AllowedHeader></CORSRule><CORSRule><AllowedOrigin>\*</AllowedOrigin><AllowedMethod>GET</AllowedMethod></CORSRule></CORSConfiguration>
Жауап мысалы:
HTTP/1.1 200 OKDate: Mon, 31 Aug 2020 18:50:44 GMTx-amz-request-id: tx0000000000000027946fc-005963cc84-1268c-ru-mskaContent-Type: application/xmlContent-Length: 0Connection: close
DELETE операциясы бакет үшін орнатылған CORS конфигурациясы туралы ақпаратты жояды.
Бұл операцияны пайдалану үшін WRITE_ACP жазу құқықтарына ие болу қажет.
Сұрау мысалы:
DELETE /?cors HTTP/1.1Host: my-test-bucket1.hb.ru-msk.vkcloud-storage.rux-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855x-amz-date: 20200831T182537ZAuthorization: AWS4-HMAC-SHA256 Credential=II5JDQBAN3JYM4DNEB6C/20200831/ru-msk/s3/aws4_request,SignedHeaders=content-md5;content-type;host;x-amz-content-sha256;x-amz-date,Signature=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Жауап мысалы:
HTTP/1.1 204 No ContentDate: Mon, 31 Aug 2020 18:25:38 GMTx-amz-request-id: tx0000000000000002fae1f-0059690ca2-6441-ru-mskaConnection: close