Bir paket için yapılandırılan statik web sitesi barındırma durumunu ve yönlendirme kurallarını sorgular.
Not
GetBucketWebsite işlemini çağırarak bir paket için yapılandırılan statik web sitesi barındırma durumunu ve yönlendirme kurallarını sorgulamak için oss:GetBucketWebsite izni gereklidir. Daha fazla bilgi için Özel bir ilke atama konusuna bakın.
İstek yapısı
GET /?website HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
İstek üst bilgileri
GetBucketWebsite isteği yalnızca ortak istek üst bilgilerini içerir. Daha fazla bilgi için Ortak istek üst bilgileri konusuna bakın.
Yanıt üst bilgileri
GetBucketWebsite isteğine verilen yanıt yalnızca ortak yanıt üst bilgilerini içerir. Daha fazla bilgi için Ortak yanıt üst bilgileri konusuna bakın.
Yanıt öğeleri
-
Aşağıdaki tabloda, GetBucketWebsite isteğine verilen yanıtta bulunan WebsiteConfiguration öğesi açıklanmaktadır.
Öğe
Tür
Örnek
Açıklama
WebsiteConfiguration
Konteyner
YokKök düğüm.
Üst düğümler: yok
-
Aşağıdaki tabloda, GetBucketWebsite isteğine verilen yanıtta bulunan IndexDocument öğeleri açıklanmaktadır.
Öğe
Tür
Örnek
Açıklama
IndexDocument
Konteyner
YokVarsayılan ana sayfanın saklandığı konteyner.
Üst düğümler: WebsiteConfiguration
Suffix
Dize
index.htmlVarsayılan ana sayfa.
Üst düğümler: IndexDocument
-
Aşağıdaki tabloda, GetBucketWebsite isteğine verilen yanıtta bulunan ErrorDocument öğeleri açıklanmaktadır.
Öğe
Tür
Örnek
Açıklama
ErrorDocument
Konteyner
YokHata sayfasının saklandığı konteyner.
Üst düğümler: WebsiteConfiguration
Key
Dize
error.htmlHata sayfası.
Üst düğümler: ErrorDocument
HttpStatus
Dize
404Hata sayfasıyla birlikte döndürülen HTTP durum kodu.
Üst düğümler: ErrorDocument
-
Aşağıdaki tabloda, GetBucketWebsite isteğine verilen yanıtta bulunan RoutingRules, RoutingRule ve RuleNumber öğeleri açıklanmaktadır.
Öğe
Tür
Örnek
Açıklama
RoutingRules
Konteyner
Yok
RoutingRule öğesinin saklandığı konteyner.
Üst düğümler: WebsiteConfiguration
RoutingRule
Konteyner
Yok
Yönlendirme kuralı veya yansıtma tabanlı kökene geri dönüş kuralı.
Üst düğümler: RoutingRules
RuleNumber
Pozitif tam sayı
1
Yönlendirme kurallarını veya yansıtma tabanlı kökene geri dönüş kurallarını eşleştirmek ve çalıştırmak için kullanılan sıra numarası.
Yönlendirme kuralları bu öğeye göre eşleştirilir. Eşleşme başarılı olursa yalnızca ilgili kural çalıştırılır ve sonraki kurallar çalıştırılmaz.
Üst düğümler: RoutingRule
-
Aşağıdaki tabloda, GetBucketWebsite isteğine verilen yanıtta bulunan RoutingRules, RoutingRule ve Condition öğeleri açıklanmaktadır.
Öğe
Tür
Örnek
Açıklama
Condition
Konteyner
YokEşleşme koşulu. Kural, yalnızca belirtilen tüm koşullar karşılandığında çalıştırılır.
Üst düğümler: RoutingRule
KeyPrefixEquals
Dize
abcNesne adlarının öneki. Yalnızca adları belirtilen öneki içeren nesneler kural ile eşleşir.
Üst düğümler: Condition
HttpErrorCodeReturnedEquals
HTTP durum kodu
404Döndürülen HTTP durum kodu. Kural, yalnızca belirtilen nesneye erişildiğinde ve belirtilen durum kodu döndürüldüğünde eşleşir. Yönlendirme kuralı yansıtma tabanlı kökene geri dönüş kuralıysa bu öğenin değeri 404 olur.
Üst düğümler: Condition
IncludeHeader
Konteyner
Yokİstekte belirtilen üst bilgi. Kural, yalnızca istekte belirtilen üst bilgi bulunduğunda ve üst bilgi değeri belirtilen değere eşit olduğunda eşleşir. En fazla beş IncludeHeader konteyneri belirtilebilir.
Üst düğümler: IncludeHeader
Key
Dize
hostÜst bilginin anahtarı. Kural, yalnızca istekte belirtilen üst bilgi bulunduğunda ve üst bilgi değeri Equals tarafından belirtilen değere eşit olduğunda eşleşir.
Üst düğümler: IncludeHeader
Equals
Dize
test.oss-cn-beijing-internal.aliyuncs.comÜst bilginin değeri. Kural, yalnızca Key tarafından belirtilen üst bilgi istekte bulunduğunda ve üst bilgi değeri belirtilen değere eşit olduğunda eşleşir.
Üst düğümler: IncludeHeader
-
Aşağıdaki tabloda, GetBucketWebsite isteğine verilen yanıtta bulunan RoutingRules, RoutingRule ve Redirect öğeleri açıklanmaktadır.
Öğe
Tür
Örnek
Açıklama
Redirect
Konteyner
Yok
Kural eşleştiğinde gerçekleştirilecek işlem.
Üst düğümler: RoutingRule
RedirectType
Dize
Mirror
Yönlendirme türü.
-
Mirror: Yansıtma tabanlı kökene geri dönüş.
-
External: Harici yönlendirme. Object Storage Service (OSS), erişimi başka bir IP adresine yönlendirmeniz için size 3xx HTTP yönlendirme kodunu ve Location üst bilgisini döndürür.
-
AliCDN: Alibaba Cloud Content Delivery Network (CDN) tabanlı yönlendirme. OSS, External türünden farklı olarak isteğe ek bir üst bilgi ekler. CDN bu üst bilgiyi tanımladıktan sonra erişimi belirtilen IP adresine yönlendirir ve kullanıcıya yönlendirme isteği yerine elde edilen verileri döndürür.
Üst düğümler: Redirect
PassQueryString
Boolean
false
Sistem yönlendirme kuralını veya yansıtma tabanlı kökene geri dönüş kuralını çalıştırdığında orijinal isteğin istek parametrelerinin yönlendirme isteğine dahil edilip edilmediğini gösterir.
PassQueryString parametresi true olarak ayarlanırsa ve OSS'ye gönderilen bir istekte "?a=b&c=d" bulunuyorsa, yönlendirme modu 302 olduğunda bu parametre Location üst bilgisine eklenir. Örneğin, istek "Location: www.example.com?a=b&c=d" içeriyorsa ve RedirectType değeri Mirror ise, a=b&c=d parametresi kökene geri dönüş isteğine dahil edilir.
Varsayılan değer: false
Üst düğümler: Redirect
MirrorURL
Dize
http://example.com
Yansıtma tabanlı kökene geri dönüş için kök URL'si. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Kök URL'si http:// veya https:// ile başlamalı ve eğik çizgi (/) ile bitmelidir. OSS, kökene geri dönüş URL'si oluşturmak için URL'nin sonuna bir nesne adı ekler.
Örneğin, erişilecek nesnenin adı myobject'tir. MirrorURL değeri
http://example.com/olarak ayarlanırsa kökene geri dönüş URL'sihttp://example.com/myobjectolur. MirrorURL değerihttp://example.com/dir1/olarak ayarlanırsa kökene geri dönüş URL'sihttp://example.com/dir1/myobjectolur.Üst düğümler: Redirect
MirrorPassQueryString
Boolean
false
Bu öğe, PassQueryString ile aynı rolü oynar ve PassQueryString'e göre daha yüksek önceliğe sahiptir. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Varsayılan değer: false
Üst düğümler: Redirect
MirrorFollowRedirect
Boolean
true
Kök sunucu 3xx HTTP durum kodu döndürürse erişimin Location tarafından belirtilen adrese yönlendirilip yönlendirilmeyeceğini gösterir. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Örneğin, yansıtma tabanlı bir kökene geri dönüş isteği başlatıldığında kök sunucu 302 döndürür ve Location belirtilir.
-
true: OSS, Location tarafından belirtilen adresi istemeye devam eder.
Erişim en fazla 10 kez yönlendirilebilir. 10 yönlendirmeden sonra bir hata mesajı döndürülür.
-
false: OSS 302 döndürür ve Location'ı geçirir.
Varsayılan değer: true
Üst düğümler: Redirect
MirrorCheckMd5
Boolean
false
OSS'nin kök sunucudan döndürülen yanıtın gövdesinin MD5 hash değerini kontrol edip etmediğini gösterir. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Bu parametrenin değeri true olduğunda ve kök sunucudan döndürülen yanıt Content-Md5 üst bilgisini içeriyorsa OSS, elde edilen verilerin MD5 hash değerinin üst bilgi değeriyle eşleşip eşleşmediğini kontrol eder. Elde edilen verilerin MD5 hash değeri üst bilgi değeriyle eşleşmiyorsa OSS verileri depolamaz.
Varsayılan değer: false
Üst düğümler: Redirect
MirrorHeaders
Konteyner
Yok
Paket için yansıtma tabanlı kökene geri dönüş kuralı belirtildiğinde dahil edilen üst bilgiler. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Üst düğümler: Redirect
PassAll
Boolean
true
OSS'nin tüm istek üst bilgilerini kök sunucuya geçirip geçirmeyeceğini gösterir. İstek üst bilgileri, ayrılmış üst bilgileri ve
oss-, x-oss- ve x-drs-ile başlayan üst bilgileri hariç tutar. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.Varsayılan değer: false
Üst düğümler: MirrorHeaders
Pass
Dize
myheader-key1
Kök sunucuya geçirilecek üst bilgi. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Üst bilgi uzunluğu en fazla 1.024 bayt olabilir ve yalnızca harf, rakam ve tire (-) içerebilir.
En fazla 10 Pass üst bilgisi belirtebilirsiniz.
Üst düğümler: MirrorHeaders
Remove
Dize
myheader-key3
Kök sunucuya geçirilmesine izin verilmeyen üst bilgi. En fazla 10 Remove üst bilgisi belirtilebilir. Bu öğe PassAll ile birlikte kullanılır. Üst bilgi uzunluğu en fazla 1.024 bayt olabilir. Bu parametrenin karakter kümesi Pass ile aynıdır. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Üst düğümler: MirrorHeaders
Set
Konteyner
Yok
Kök sunucuya gönderilen üst bilgileri belirtir. Belirtilen üst bilgiler, istekte bulunup bulunmadıklarından bağımsız olarak kök sunucudan döndürülen verilere yapılandırılır. En fazla 10 Set konteyneri belirtilebilir. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Üst düğümler: MirrorHeaders
Key
Dize
myheader-key5
Üst bilginin anahtarı. Anahtar uzunluğu en fazla 1.024 bayt olabilir. Bu parametrenin karakter kümesi Pass ile aynıdır. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Üst düğümler: Set
Value
Dize
myheader-value5
Üst bilginin değeri. Değer uzunluğu en fazla 1.024 bayt olabilir ve "\r\n" içermemelidir. Bu öğe yalnızca RedirectType değeri Mirror olduğunda etkili olur.
Üst düğümler: Set
Protocol
Dize
http
Erişimi yönlendirmek için kullanılan protokol. Bu öğe yalnızca RedirectType değeri External veya AliCDN olduğunda etkili olur.
Örneğin, test adlı bir nesneye erişirken Protocol https olarak ve Hostname
example.comolarak ayarlanırsa Location üst bilgi değerihttps://example.com/testolur.Geçerli değerler: http ve https.
Üst düğümler: Redirect
HostName
Dize
example.com
Yönlendirme için kullanılan alan adı, alan adı adlandırma kurallarına uygun olmalıdır. Bu öğe yalnızca RedirectType değeri External veya AliCDN olduğunda etkili olur.
Örneğin, test adlı nesneye erişirken Protocol https olarak ve Hostname
example.comolarak ayarlanırsa Location üst bilgisihttps://www.example.com/testolur.Üst düğümler: Redirect
HttpRedirectCode
HTTP durum kodu
301
Yanıttaki HTTP yönlendirme kodu. Bu öğe yalnızca RedirectType değeri External veya AliCDN olduğunda etkili olur.
Geçerli değerler: 301, 302 ve 307
Üst düğümler: Redirect
ReplaceKeyPrefixWith
Dize
def/
Yönlendirme isteğindeki nesne adının önekini değiştirmek için kullanılan dize. Bu öğe yalnızca RedirectType değeri External veya AliCDN olduğunda etkili olur.
Örneğin,
abc/test.txtadlı bir nesneye erişirken ReplaceKeyPrefixWith değeridef/olarak ayarlanırsa Location üst bilgi değeri, KeyPrefixEquals değerinin boş olup olmamasına göre değişir.-
KeyPrefixEquals değeri
abc/olarak ayarlanırsa Location üst bilgi değerihttp://example.com/def/test.txtolur. -
KeyPrefixEquals boşsa Location üst bilgi değeri
http://example.com/def/abc/test.txtolur.
Üst düğümler: Redirect
ReplaceKeyWith
Dize
prefix/${key}.suffix
Yönlendirme isteğindeki nesne adını değiştirmek için kullanılan dize. Bu öğe yalnızca RedirectType değeri External veya AliCDN olduğunda etkili olur.
Bu öğe, istekteki nesne adını belirten ${key} değişkenini destekler. Örneğin, test adlı bir nesneye erişirken ReplaceKeyWith değeri
prefix/${key}.suffixolarak ayarlanırsa Location üst bilgi değerihttp://example.com/prefix/test.suffixolur.Üst düğümler: Redirect
-
Örnekler
Örnek istekler
Get /?website HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Thu, 13 Sep 2012 07:51:28 GMT
Authorization: OSS qn6q**************:77Dv****************
Örnek yanıtlar
-
Statik web sitesi barındırma kuralları yapılandırıldığında örnek yanıtlar
HTTP/1.1 200 x-oss-request-id: 534B371674E88A4D8906008B Date: Thu, 13 Sep 2012 07:51:28 GMT Connection: keep-alive Content-Length: 218 Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <WebsiteConfiguration xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <IndexDocument> <Suffix>index.html</Suffix> </IndexDocument> <ErrorDocument> <Key>error.html</Key> <HttpStatus>404</HttpStatus> </ErrorDocument> </WebsiteConfiguration> -
Statik web sitesi barındırma kuralları yapılandırılmadığında örnek yanıt
HTTP/1.1 404 x-oss-request-id: 534B371674E88A4D8906008B Date: Thu, 13 Sep 2012 07:56:46 GMT Connection: keep-alive Content-Length: 308 Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <Error xmlns="http://doc.oss-cn-hangzhou.aliyuncs.com"> <Code>NoSuchWebsiteConfiguration</Code> <Message>The specified bucket does not have a website configuration.</Message> <BucketName>oss-example</BucketName> <RequestId>505191BEC4689A033D00236F</RequestId> <HostId>oss-example.oss-cn-hangzhou.aliyuncs.com</HostId> </Error>
Tam bir örnek yanıt
GET /?website HTTP/1.1
Date: Fri, 27 Jul 2018 09:07:41 GMT
Host: test.oss-cn-hangzhou-internal.aliyuncs.com
Authorization: OSS qn6q**************:77Dv****************
User-Agent: aliyun-sdk-python-test/0.4.0
<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
<ErrorDocument>
<Key>error.html</Key>
<HttpStatus>404</HttpStatus>
</ErrorDocument>
<RoutingRules>
<RoutingRule>
<RuleNumber>1</RuleNumber>
<Condition>
<KeyPrefixEquals>abc/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<RedirectType>Mirror</RedirectType>
<PassQueryString>true</PassQueryString>
<MirrorURL>http://example.com/</MirrorURL>
<MirrorPassQueryString>true</MirrorPassQueryString>
<MirrorFollowRedirect>true</MirrorFollowRedirect>
<MirrorCheckMd5>false</MirrorCheckMd5>
<MirrorHeaders>
<PassAll>true</PassAll>
<Pass>myheader-key1</Pass>
<Pass>myheader-key2</Pass>
<Remove>myheader-key3</Remove>
<Remove>myheader-key4</Remove>
<Set>
<Key>myheader-key5</Key>
<Value>myheader-value5</Value>
</Set>
</MirrorHeaders>
</Redirect>
</RoutingRule>
<RoutingRule>
<RuleNumber>2</RuleNumber>
<Condition>
<IncludeHeader>
<Key>host</Key>
<Equals>test.oss-cn-beijing-internal.aliyuncs.com</Equals>
</IncludeHeader>
<KeyPrefixEquals>abc/</KeyPrefixEquals>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<RedirectType>AliCDN</RedirectType>
<Protocol>http</Protocol>
<HostName>example.com</HostName>
<PassQueryString>false</PassQueryString>
<ReplaceKeyWith>prefix/${key}.suffix</ReplaceKeyWith>
<HttpRedirectCode>301</HttpRedirectCode>
</Redirect>
</RoutingRule>
</RoutingRules>
</WebsiteConfiguration>
HTTP/1.1 200 OK
Server: AliyunOSS
Date: Fri, 27 Jul 2018 09:07:41 GMT
Content-Type: application/xml
Content-Length: 2102
Connection: keep-alive
x-oss-request-id: 5B5AE0DD2F7938C45FCED4BA
x-oss-server-time: 47
OSS SDK'leri
GetBucketWebsite işlemini çağırmak için aşağıdaki programlama dillerine yönelik OSS SDK'lerini kullanabilirsiniz:
ossutil
GetBucketWebsite işlemine karşılık gelen ossutil komutu hakkında bilgi için get-bucket-website konusuna bakın.
Hata kodları
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|