Bir paket için çapraz kaynak paylaşımı (CORS) kurallarını yapılandırır.
Kullanım notları
-
Varsayılan olarak devre dışı tasarım
CORS varsayılan olarak devre dışıdır. Tüm çapraz kaynak isteklerine izin verilmez.
-
Üzerine yazma mekanizması
PutBucketCors ile yapılandırdığınız yeni CORS kuralları, paket için mevcut tüm CORS kurallarının üzerine yazar.
-
Uygulamalarda CORS kullanımı
Uygulamalarda CORS kullanmadan önce PutBucketCors çağrısı yaparak CORS kurallarını yapılandırın.
Örneğin, tarayıcı üzerinden
XMLHttpRequestkullanarakexample.comadresinin OSS'ye erişmesine izin vermek için bu işlemi kullanarak XML biçiminde bir CORS kuralı yapılandırın. -
CORS kuralı eşleşmesi
OSS bir paket için çapraz kaynak isteği veya OPTIONS isteği aldığında, yapılandırılmış CORS kurallarını sırayla denetler ve ilk eşleşme için ilgili üst bilgileri döndürür. Hiçbir kural eşleşmezse OSS, yanıtta CORS üst bilgilerini içermez.
Bir istek yalnızca aşağıdaki koşulların tümü karşılandığında bir CORS kuralıyla eşleşir:
İstek kaynağı, kuraldaki bir
AllowedOrigindeğeriyle eşleşir.İstek yöntemi veya
Access-Control-Request-Methodüst bilgi değeri, birAllowedMethoddeğeriyle eşleşir.Access-Control-Request-Headersiçindeki her üst bilgi, birAllowedHeaderdeğeriyle eşleşir.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabı tam izne sahiptir. Bir Alibaba Cloud hesabı altındaki RAM kullanıcıları veya RAM rolleri varsayılan olarak herhangi bir izne sahip değildir. Alibaba Cloud hesabı veya hesap yöneticisi, işlem izinlerini RAM ilkeleri veya Paket İlkesi aracılığıyla vermelidir.
|
|
|
|
|
|
|
|
İstek sözdizimi
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 >
İstek öğeleri
|
Öğe |
Tür |
Gerekli |
Örnek |
Açıklama |
|
CORSRule |
Konteyner |
Evet |
Yok |
CORS kurallarını depolayan konteyner. Maksimum: Paket başına 20 CORS kuralı. Maksimum istek gövdesi boyutu: 16 KB. Üst düğümler: CORSConfiguration |
|
AllowedOrigin |
Dize |
Evet |
* |
İzin verilen çapraz kaynak istek kaynağı. Birden çok kaynak için birden çok öğe belirtin. Joker karakter olarak kullanılan bir yıldız işareti (*) tüm kaynaklara izin verir. Öğe başına yalnızca bir joker karakter desteklenir. Üst düğümler: CORSRule |
|
AllowedMethod |
Numaralandırma |
Evet |
GET |
İzin verilen çapraz kaynak istek yöntemi. Geçerli değerler: GET, PUT, DELETE, POST ve HEAD. Üst düğümler: CORSRule |
|
AllowedHeader |
Dize |
Hayır |
Authorization |
Çapraz kaynak isteklerinde izin verilen üst bilgiler, ön kontrol isteklerindeki
Önemli
AllowedHeader için joker karakter olarak yalnızca bir yıldız işareti (*) kullanabilirsiniz. Aşağıdaki karakterler desteklenmez:
Üst düğümler: CORSRule |
|
ExposeHeader |
Dize |
Hayır |
x-oss-test |
JavaScript XMLHttpRequest gibi istemci uygulamaları tarafından erişilebilen yanıt üst bilgileri. Önemli
Aşağıdaki karakterler desteklenmez:
Üst düğümler: CORSRule |
|
MaxAgeSeconds |
Tamsayı |
Hayır |
100 |
Tarayıcının ön kontrol yanıtını önbellekte tutabileceği süre. Birim: saniye. CORS kuralı başına yalnızca bir MaxAgeSeconds öğesine izin verilir. Üst düğümler: CORSRule |
|
CORSConfiguration |
Konteyner |
Evet |
Yok |
Paket için CORS yapılandırmalarını depolayan konteyner. Üst düğümler: yok |
|
ResponseVary |
Boolean |
Hayır |
false |
Vary: Origin üst bilgisinin döndürülüp döndürülmeyeceği. Geçerli değerler:
Önemli
Yalnızca en az bir CORS kuralı yapılandırıldığında geçerlidir. |
Bu işlem ayrıca Ortak HTTP üst bilgilerini kullanır.
Yanıt üst bilgileri
PutBucketCors yanıtları yalnızca Ortak HTTP üst bilgilerini içerir.
Örnekler
-
Örnek istek
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 > -
Örnek yanıt
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
Aşağıdaki OSS SDK'ları PutBucketCors işlemini destekler:
ossutil
PutBucketCors işlemine karşılık gelen ossutil komutu hakkında bilgi için bkz. put-bucket-cors.
Hata kodları
|
|
|
|
|
|
|
|